Skip to content

Commit

Permalink
chore: readme cleanup (#179)
Browse files Browse the repository at this point in the history
  • Loading branch information
jasminziegler authored May 28, 2024
1 parent 7b541dc commit d6c1fea
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 20 deletions.
24 changes: 18 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,29 @@

[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/bzkf/diz-in-a-box/badge)](https://api.securityscorecards.dev/projects/github.com/bzkf/diz-in-a-box)

DIZ in a box.
This software is used to transform oncological basic data set (oBDS) XML files from tumor documentation systems to HL7® FHIR® and to a tabular format.

## Modular Pipeline
![Figure Modular Pipeline](img/fig1.png)

[publication to be cited here]


## Installation

### Prerequisites
### Installation: Docker Compose Setup
Please follow along here: [docker-compose/README.md](docker-compose/README.md)


### Installation: kubernetes setup

#### Prerequisites

- [helm](https://github.com/helm/helm)

### Steps
#### Steps

#### Install K3S Cluster
##### Install K3S Cluster

```sh
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.26.1+k3s1 sh -
Expand Down Expand Up @@ -74,7 +86,7 @@ chmod +x ./dist/air-gapped/bin/import-images-into-k3s.sh
IMAGE_FOLDER=./dist/air-gapped/images ./dist/air-gapped/bin/import-images-into-k3s.sh
```

#### Install Strimzi Operator and Kafka
##### Install Strimzi Operator and Kafka

<!-- x-release-please-start-version -->

Expand All @@ -91,7 +103,7 @@ kubectl wait kafkabridge/bzkf-dizbox-bridge --for=condition=Ready --timeout=300s
kubectl get all -A
```

#### Install DIZ-in-a-box
##### Install DIZ-in-a-box

```sh
helm upgrade --install --wait --timeout=10m --version=2.2.2 diz-in-a-box oci://ghcr.io/bzkf/diz-in-a-box/charts/diz-in-a-box
Expand Down
71 changes: 57 additions & 14 deletions docker-compose/README.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,61 @@
# obds-to-fhir Docker Compose Version
# diz-in-a-box Docker Compose Version

## Run only the obds-to-fhir job
![Figure Modular Pipeline](../img/fig1.png)

```sh
docker compose -f compose.obds-to-fhir.yaml up
```
## Installation

### 1. Prepare Data Import
#### a) ONKOSTAR data base connector
Configure kafka-connect in [compose.full-yaml](compose.full.yaml) and [docker-compose/kafka-connect-passwords.properties](kafka-connect-passwords.properties).
The oBDS single report XML-files will be loaded into the Kafka cluster.
For more information about kafka-connect, refer to [7. Enable Kafka Connect and the connector.](#7-enable-kafka-konnect-and-the-connector)
#### b) Folder import
Copy your oBDS collection report XML-files to [docker-compose/input-obds-reports]().

## Run while also starting a Kafka cluster and Kafka connect

### 2. Start the Kafka Cluster

```sh
docker compose -f compose.obds-to-fhir.yaml -f compose.full.yaml up
docker compose -f compose.full.yaml up
```

Open <http://localhost:8084/> to view the cluster's topics.
Open <http://localhost:8084/> to view the cluster's topics and the progress of your pipeline.


## Load sample data from a oBDS Sammelmeldung into the Kafka cluster
### 3. Load data
#### a) ONKOSTAR data base connector
The oBDS single report XML-files from ONKOSTAR data base will be loaded into the Kafka cluster with step 2.


#### b) Folder import
Decompose oBDS collection report XML-files from [docker-compose/input-obds-reports](docker-compose/input-obds-reports) into single XML reports and load them into the Kafka cluster.

```sh
docker compose -f compose.decompose-xmls.yaml up
```

## Convert the FHIR resources to a CSV dataset
### 4. Transform oBDS XML-data to FHIR

```sh
docker compose -f compose.obds-to-fhir.yaml up
```
We currently use the FHIR profiles defined under https://simplifier.net/oncology.


### 5. Convert the FHIR resources to a CSV dataset

```sh
sudo chown -R 1001:1001 ./opal-output/
docker compose -f compose.obds-fhir-to-opal.yaml up
```

## Start the entire stack
### 6. Start the entire stack

```sh
docker compose -f compose.obds-to-fhir.yaml -f compose.full.yaml -f compose.decompose-xmls.yaml -f compose.obds-fhir-to-opal.yaml up
```

## Enable Kafka Connect and the connector
### 7. Enable Kafka Connect and the connector

Make sure to have access to Onkostar tables `lkr_meldung`, `lkr_meldung_export` and `erkrankung`.

Expand All @@ -60,7 +82,7 @@ curl -X POST \
http://localhost:8083/connectors
```

## Run with enabled pseudonymization
### 8. Run with enabled pseudonymization

> **Warning**
> Requires gPAS to be set-up and the [anonymization.yaml](anonymization.yaml) to be configured
Expand All @@ -69,8 +91,29 @@ curl -X POST \
docker compose -f compose.obds-to-fhir.yaml -f compose.full.yaml -f compose.pseudonymization.yaml up
```

## Run with enabled pseudonymization and sending resources to a FHIR server
### 9. Run with enabled pseudonymization and sending resources to a FHIR server

```sh
docker compose -f compose.obds-to-fhir.yaml -f compose.full.yaml -f compose.fhir-server.yaml -f compose.pseudonymization.yaml up
```


### 10. Air-gapped installation

In case of absence of Internet connectivity, container images cannot be pulled from the registry. Instead, download the air-gapped installer and move it to the deployment machine:

<!-- x-release-please-start-version -->

```sh
curl -L -O https://github.com/bzkf/diz-in-a-box/releases/download/v2.2.2/air-gapped-installer.tgz
```

<!-- x-release-please-end -->

Run the following steps on the deployment machine.

Extract the archive:

```sh
tar xvzf ./air-gapped-installer.tgz
```
Binary file added img/fig1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit d6c1fea

Please sign in to comment.