Skip to content

Commit

Permalink
Merge pull request #45 from medizininformatik-initiative/release/v3.1.0
Browse files Browse the repository at this point in the history
Release/v3.1.0
  • Loading branch information
juliangruendner authored Nov 9, 2023
2 parents c9ca6af + aa3657f commit f5121cb
Show file tree
Hide file tree
Showing 22 changed files with 307 additions and 282 deletions.
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,35 @@ Please refer to the respective repositories for a more in depth changelog of sin
|Component|Link|
|--|--|
|UI|<https://github.com/medizininformatik-initiative/feasibility-gui>|
|Ontology Generation|<https://github.com/medizininformatik-initiative/fhir-ontology-generator>|
|Backend|<https://github.com/medizininformatik-initiative/feasibility-backend>|
|AKTIN Broker|<https://github.com/aktin/broker>|
|AKTIN Feasibility Plugin|<https://github.com/medizininformatik-initiative/feasibility-aktin-plugin>|
|DSF Feasibility Plugin|<https://github.com/medizininformatik-initiative/feasibility-dsf-process>|
|FLARE|<https://github.com/medizininformatik-initiative/flare>|
|Blaze FHIR server|<https://github.com/medizininformatik-initiative/blaze>|

## [3.0.0] - 2023-08-08

### Overall

- Updated all components and underlying libraries to the new versions
- Updated all components to version compatible with ontology version 2.0
- Adjusted readme to reflect changes in the underlying components

### Features

| Feature | Affected Components |
| -- | -- |
|Added support for referenced criteria|UI, backend, Ontology, Sq2cql, FLARE|
|Added support for composite search parameters|UI, SQ, Ontology, Sq2cql, FLARE|
|Updated to new DSF version v1.0.0 compatible with new DSF verison v1.x | Backend, DSF feasibility plugin|
|Added Dateselection|UI|
|Update ontology to new ontology generation and added ontology to images directly| Ontology, Backend, FLARE|
|Added encrypted result logging| Backend|
|Add support for self-signed certificates| Backend, FLARE, DSF feasibility plugin |


## [2.1.0] - 2023-07-25

### Overall
Expand Down
126 changes: 51 additions & 75 deletions feasibility-portal/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ ssh to your virtual machine and switch to sudo `sudo -s`.
Designate a folder for your setup in which you clone the deploy repository, we suggest /opt (`cd /opt`)
Navigate to the directory and clone this repository: `git clone https://github.com/medizininformatik-initiative/feasibility-deploy.git`
Navigate to the feasibility-portal folder of the repository: `cd /opt/feasibility-deploy/feasibility-portal`
Checkout the version (git tag) of the feasibility portal you would like to install: `git checkout tags/<your-tag-name-here>`
Checkout the version (git tag) of the feasibility portal you would like to install: `git checkout <your-tag-name-here>`

### Step 3 - Initialise .env files

Expand All @@ -35,27 +35,9 @@ Set the rights for all files of the auth folder to 655 `chmod 655 /opt/feasibili

- Not providing the certificate files is not an option.

### Step 5 - Load the ontology mapping files
### Step 5 - Load the ontology

If used, (see "Overview") The FLARE component requires a mapping file and ontology tree file to translate an incoming feasibility query into FHIR Search queries.
Both can be downloaded here: https://confluence.imi.med.fau.de/display/ABIDEMI/Ontologie

Upload the ontology .zip files to your server, unpack them and copy the ontology files to your feasibility portal ontology folder

```bash
sudo -s
mkdir /<path>/<to>/<folder>/<of>/<choice>
cd /<path>/<to>/<folder>/<of>/<choice>
unzip mapping_*.zip
unzip ui_profile_*.zip
unzip db_migration_*.zip
cd mapping
cp * /opt/feasibility-deploy/feasibility-portal/ontology
cd ../ui_profile
cp * /opt/feasibility-deploy/feasibility-portal/ontology/ui_profiles
cd ../db_migration
cp * /opt/feasibility-deploy/feasibility-portal/ontology/migration
```
**Note:** The ontology is now part of the image and will not have to be loaded manually.

### Step 6 - Configure your feasibility portal

Expand All @@ -73,7 +55,7 @@ If you use the default local feasibility portal setup you will only have to chan
| backend/.env | FLARE_WEBSERVICE_BASE_URL | http://flare:8080 |
| backend/.env | FEASIBILITY_BACKEND_ALLOWED_ORIGINS | base-url-of-your-local-feasibility-portal |
|backend/.env |FEASIBILITY_BACKEND_KEYCLOAK_BASE_URL_ISSUER| base-url-of-your-local-feasibility-portal/auth |
| gui/deploy-config.json | uiBackendApi > baseUrl | base-url-of-your-local-feasibility-portal/api/v2 |
| gui/deploy-config.json | uiBackendApi > baseUrl | base-url-of-your-local-feasibility-portal/api/v3 |
| gui/deploy-config.json | auth > baseUrl | base-url-of-your-local-feasibility-portal |

Please note that all user env variables (variables containing USER) should be changed and all password variables (variables containing PASSWORD or PW) should be set to secure passwords.
Expand Down Expand Up @@ -129,7 +111,46 @@ Click on **New query**, create a query and send it using the **send** button.
After a few moments you should see the results to your query in the **Number of patients** window.


## Configurable environment variables
## Updating your local feasibility portal

If you have already installed the local feasibility portal and just want to update it, follow these steps:


### Step 1 - Stop your portal

`cd /opt/feasibility-deploy/feasibility-portal && bash stop-feasibility-portal.sh`

### Step 2 - Update repository and check out new tag

`cd /opt/feasibility-deploy && git pull`
`git checkout <new-tag>`

### Step 3 - transfer the new env variables

Compare the .env and .env.default files for each component and add any new variables from the .env.default file to the .env file.
Keep the existing configuration as is.

### Step 4 - Update your ontology

**Note:** The ontology is now part of the image and will not have to be loaded manually.

### Step 5 - Start your portal

To start the portal navigate to `/opt/feasibility-deploy/feasibility-portal` and
execute `bash start-feasibility-portal-local.sh`.

### Step 6 - Log in to the local feasibility portal and test your connection

Ask for the Url of the central portal at the FDPG or check Confluence for the correct address.

Log in to the portal and send a request with the Inclusion Criterion chosen from the Inclusion criteria tree (folder sign under Inclusion Criteria)
"Person > PatientIn > Geschlecht: Female,Male"

and press "send".

## Configuration

### Configurable environment variables


| Env Var | Description | Default | Possible values | Component |
Expand Down Expand Up @@ -210,60 +231,15 @@ After a few moments you should see the results to your query in the **Number of
| FEASIBILITY_DSF_BROKER_PROCESS_FHIR_SERVER_BASE_URL | Base URL to a FHIR server or proxy for feasibility evaluation. This can also be the base URL of a reverse proxy if used. Only required if evaluation strategy is set to cql. | https://dsf-zars-fhir-proxy/fhir | URL | DSF |


### Support for self-signed certificates

## Updating your local feasibility portal

If you have already installed the local feasibility portal and just want to update it, follow these steps:


### Step 1 - Stop your portal

`cd /opt/feasibility-deploy/feasibility-portal && bash stop-feasibility-portal.sh`

### Step 2 - Update repository and check out new tag

`cd /opt/feasibility-deploy && git pull`
`git checkout <new-tag>`

### Step 3 - transfer the new env variables

Compare the .env and .env.default files for each component and add any new variables from the .env.default file to the .env file.
Keep the existing configuration as is.

### Step 4 - Update your ontology

If used, (see "Overview") The FLARE component requires a mapping file and ontology tree file to translate an incoming feasibility query into FHIR Search queries.
Both can be downloaded here: https://confluence.imi.med.fau.de/display/ABIDEMI/Ontologie

Upload the ontology .zip files to your server, unpack them and copy the ontology files to your feasibility portal ontology folder.

```bash
sudo -s
mkdir /<path>/<to>/<folder>/<of>/<choice>
cd /<path>/<to>/<folder>/<of>/<choice>
unzip mapping_*.zip
unzip ui_profile_*.zip
unzip db_migration_*.zip
cd mapping
cp * /opt/feasibility-deploy/feasibility-portal/ontology
cd ../ui_profile
cp * /opt/feasibility-deploy/feasibility-portal/ontology/ui_profiles
cd ../db_migration
cp * /opt/feasibility-deploy/feasibility-portal/ontology/migration
```

Existing files should be replaced.

### Step 5 - Start your portal
Depending on your setup you might need to use self-singed certificates and the tools will have to accept your CAs.
For the portal then only tool for which this is relevant is the backend.

To start the portal navigate to `/opt/feasibility-deploy/feasibility-portal` and
execute `bash start-feasibility-portal-local.sh`.
#### Feasibility Backend

### Step 6 - Log in to the local feasibility portal and test your connection
The feasibility backend supports the use of self-signed certificates from your own CAs. On each startup, the feasibility backend will search through the folder /app/certs inside the container, add all found CA *.pem files to a java truststore and start the application with this truststore.

Ask for the Url of the central portal at the FDPG or check Confluence for the correct address.
Using docker-compose, mount a folder from your host (e.g.: ./certs) to the /app/certs folder, add your *.pem files (one for each CA you would like to support) to the folder and ensure that they have the .pem extension.

Log in to the portal and send a request with the Inclusion Criterion chosen from the Inclusion criteria tree (folder sign under Inclusion Criteria)
"Person > PatientIn > Geschlecht: Female,Male"

and press "send".
In this deployment repository we have prepared this for you. To add your own CA add the respective ca *.pem files to the backend/certs folder.
2 changes: 2 additions & 0 deletions feasibility-portal/backend/.env.default
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ FEASIBILITY_BACKEND_CQL_TRANSLATE_ENABLED=true
FEASIBILITY_BACKEND_FHIR_TRANSLATE_ENABLED=false
FEASIBILITY_BACKEND_API_BASE_URL=https://localhost/api/
FEASIBILITY_BACKEND_ALLOWED_ORIGINS=https://localhost
FEASIBILITY_BACKEND_ONTOLOGY_ORDER="Diagnose, Prozedur, Person, Laboruntersuchung, Medikamentenverabreichung, Bioprobe, Einwilligung"
FEASIBILITY_BACKEND_MAX_SAVED_QUERIES_PER_USER=100
# ---- db config
FEASIBILITY_BACKEND_DATASOURCE_HOST=feasibility-gui-backend-db
FEASIBILITY_BACKEND_DATASOURCE_PORT=5432
Expand Down
18 changes: 13 additions & 5 deletions feasibility-portal/backend/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: '3.7'
services:
feasibility-gui-backend:
image: ghcr.io/medizininformatik-initiative/feasibility-backend:3.0.0
image: ghcr.io/medizininformatik-initiative/feasibility-backend:4.1.0
ports:
- ${FEASIBILITY_BACKEND_PORT:-127.0.0.1:8091}:8090
depends_on:
Expand All @@ -14,6 +14,8 @@ services:
API_BASE_URL: ${FEASIBILITY_BACKEND_API_BASE_URL:-https://localhost/api/}
ALLOWED_ORIGINS: ${FEASIBILITY_BACKEND_ALLOWED_ORIGINS:-https://localhost}
QUERYRESULT_EXPIRY_MINUTES: ${FEASIBILITY_BACKEND_QUERYRESULT_EXPIRY_MINUTES:-5}
ONTOLOGY_ORDER: ${FEASIBILITY_BACKEND_ONTOLOGY_ORDER:-"Diagnose, Prozedur, Person, Laboruntersuchung, Medikamentenverabreichung, Bioprobe, Einwilligung"}
MAX_SAVED_QUERIES_PER_USER: ${FEASIBILITY_BACKEND_MAX_SAVED_QUERIES_PER_USER:-100}
# ---- db config
FEASIBILITY_DATABASE_HOST: ${FEASIBILITY_BACKEND_DATASOURCE_HOST:-feasibility-gui-backend-db}
FEASIBILITY_DATABASE_PORT: ${FEASIBILITY_BACKEND_DATASOURCE_PORT:-5432}
Expand Down Expand Up @@ -59,16 +61,14 @@ services:
PRIVACY_QUOTA_READ_DETAILED_OBFUSCATED_INTERVALSECONDS: ${FEASIBILITY_BACKEND_PRIVACY_QUOTA_READ_DETAILED_OBFUSCATED_INTERVALSECONDS:-7200}
PRIVACY_THRESHOLD_RESULTS: ${FEASIBILITY_BACKEND_PRIVACY_THRESHOLD_RESULTS:-20}
PRIVACY_THRESHOLD_SITES: ${FEASIBILITY_BACKEND_PRIVACY_THRESHOLD_SITES:-3}
QUERYRESULT_DISABLE_LOG_FILE_ENCRYPTION: "true"
# ---- logging
LOG_LEVEL_SQL: ${FEASIBILITY_BACKEND_LOG_LEVEL_SQL:-warn}
LOG_LEVEL: ${FEASIBILITY_BACKEND_LOG_LEVEL:-warn}
restart: unless-stopped
volumes:
- ${FEASIBILITY_BACKEND_UI_PROFILES_PATH:-../ontology/ui_profiles}:/opt/codex-feasibility-backend/ontology/ui_profiles
- ${FEASIBILITY_BACKEND_CONCEPT_TREE_PATH:-../ontology/codex-code-tree.json}:/opt/codex-feasibility-backend/ontology/codex-code-tree.json
- ${FEASIBILITY_BACKEND_TERM_CODE_MAPPING_PATH:-../ontology/codex-term-code-mapping.json}:/opt/codex-feasibility-backend/ontology/codex-term-code-mapping.json
- ${FEASIBILITY_BACKEND_MIGRATION_PATH:-../ontology/migration/R__Load_latest_ui_profile.sql}:/opt/codex-feasibility-backend/ontology/migration/R__Load_latest_ui_profile.sql
- ${FEASIBILITY_BACKEND_CERTS_PATH:-../secrets}:/opt/codex-feasibility-security
- ./certs:/opt/codex-feasibility-backend/certs

feasibility-gui-backend-db:
image: 'postgres:15-alpine'
Expand All @@ -79,3 +79,11 @@ services:
POSTGRES_PASSWORD: ${FEASIBILITY_BACKEND_DATASOURCE_PASSWORD:-guidbpw}
POSTGRES_DB: codex_ui
restart: unless-stopped
volumes:
- type: volume
source: feas-backend-db-data
target: /var/lib/postgresql/data

volumes:
feas-backend-db-data:
name: "feas-backend-db-data"
11 changes: 8 additions & 3 deletions feasibility-portal/gui/deploy-config.json.default
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"baseUrl": "/api"
},
"uiBackendApi": {
"baseUrl": "https://localhost/api/v2"
"baseUrl": "https://localhost/api/v3"
},
"auth": {
"baseUrl": "https://localhost/auth",
Expand All @@ -28,10 +28,14 @@
"extra": {
"displayvaluefiltericon": false,
"showoptionspage": true,
"optionpageroles": ["FeasibilityAdmin"]
"showdataselectionpage": false,
"optionpageroles": ["FeasibilityAdmin"],
"displayInfoMessage": true,
"displayUpdateInfo": false
}
},
"options": {
"sendsqcontexttobackend": true,
"pollingtimeinseconds": 30,
"pollingintervallinseconds": 10,
"lowerboundarypatientresult": 0,
Expand All @@ -46,5 +50,6 @@
"stylesheet": "FDPGTheme",
"fhirport": "8082",
"dataset": "codex",
"queryVersion": "v2"
"queryVersion": "v2",
"proposalPortalLink": "https://antrag.dev.forschen-fuer-gesundheit.de"
}
2 changes: 1 addition & 1 deletion feasibility-portal/gui/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
services:
feasibility-gui:
image: ghcr.io/medizininformatik-initiative/feasibility-gui:1.0.0
image: ghcr.io/medizininformatik-initiative/feasibility-gui:2.1.0
ports:
- "443:8443"
restart: unless-stopped
Expand Down
Loading

0 comments on commit f5121cb

Please sign in to comment.