-
Notifications
You must be signed in to change notification settings - Fork 20
DSF Upgrade From 0.6.0 to 0.7.0
Upgrading the DSF from 0.6.0 to 0.7.0 involves replacing process plugins and adding folders on the BPE machine as well as modifying both docker-compose.yml files and recreating the containers.
If you are upgrading from 0.5.5 please see the Upgrade from 0.5.5 to 0.6.0 guide first.
If you are upgrading a test installation from a version older than 0.5.5 consider backing up your /opt/fhir
and /opt/bpe
directories and starting with a fresh installation.
-
Preparation / Backup
- We recommend to create a backup of the
/opt/fhir
directory before proceeding with the upgrade.
For example using:sudo cp -rp /opt/fhir /opt/fhir_backup_pre_0.7.0_upgrade
- We recommend to create a backup of the
-
Modify the DSF FHIR docker-compose.yml file, replace 0.6.0 with 0.7.0
@@ -1,7 +1,7 @@ version: '3.8' services: proxy: - image: ghcr.io/highmed/fhir_proxy:0.6.0 + image: ghcr.io/highmed/fhir_proxy:0.7.0 restart: on-failure ports: - 127.0.0.1:80:80 @@ -27,7 +27,7 @@ services: - app app: - image: ghcr.io/highmed/fhir:0.6.0 + image: ghcr.io/highmed/fhir:0.7.0 restart: on-failure healthcheck: test: ["CMD", "java", "-cp", "dsf_fhir.jar", "org.highmed.dsf.fhir.StatusClient"]
-
Upgrade the DSF FHIR containers
From/opt/fhir
executedocker-compose up -d && docker-compose logs -f
-
Preparation / Backup
- We recommend to create a backup of the
/opt/bpe
directory before proceeding with the upgrade.
For example using:sudo cp -rp /opt/bpe /opt/bpe_backup_pre_0.7.0_upgrade
- We recommend to create a backup of the
-
Modify the DSF BPE docker-compose.yml file
-
NUM-CODEX (non HiGHmed) instance:
Replace 0.6.0 with 0.7.0, update the process exclude config and add new GECCO validation related entries@@ -1,7 +1,7 @@ version: '3.8' services: app: - image: ghcr.io/highmed/bpe:0.6.0 + image: ghcr.io/highmed/bpe:0.7.0 restart: on-failure healthcheck: test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"] @@ -32,6 +32,9 @@ services: - type: bind source: ./last_event target: /opt/bpe/last_event + - type: bind + source: ./cache + target: /opt/bpe/cache environment: TZ: Europe/Berlin ORG_HIGHMED_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE: /run/secrets/db_liquibase.password @@ -45,12 +48,22 @@ services: ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE: TODO_ORGANIZATION_IDENTIFIER ORG_HIGHMED_DSF_BPE_FHIR_SERVER_BASE_URL: https://TODO_DSF_FRIR_SERVER_FQDN/fhir ORG_HIGHMED_DSF_BPE_PROCESS_EXCLUDED: | - wwwnetzwerk-universitaetsmedizinde_dataTranslate/0.4.1 - wwwnetzwerk-universitaetsmedizinde_dataReceive/0.4.1 + wwwnetzwerk-universitaetsmedizinde_dataTranslate/0.6.0 + wwwnetzwerk-universitaetsmedizinde_dataReceive/0.6.0 #TODO modify ORG_HIGHMED_DSF_BPE_PROCESS_EXCLUDED for later process versions #TODO add process specific environment variables, see process documentation + # validation resoruces cache + DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_VALIDATION_PACKAGE_CACHEFOLDER: /opt/bpe/cache/Package + DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_VALIDATION_VALUESET_CACHEFOLDER: /opt/bpe/cache/ValueSet + DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_VALIDATION_STRUCTUREDEFINITION_CACHEFOLDER: /opt/bpe/cache/StructureDefinition + + # terminology server authentication (using bpe client certificate) + DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_VALIDATION_VALUESET_EXPANSION_CLIENT_AUTHENTICATION_CERTIFICATE: /run/secrets/app_client_certificate.pem + DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_VALIDATION_VALUESET_EXPANSION_CLIENT_AUTHENTICATION_CERTIFICATE_PRIVATE_KEY: /run/secrets/app_client_certificate_private_key.pem + DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_VALIDATION_VALUESET_EXPANSION_CLIENT_AUTHENTICATION_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password + #DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_SERVER_BASE_URL: http://TODO_GECCO_FRIR_SERVER_FQDN/fhir DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_CRR_PUBLIC_KEY: /run/secrets/crr_public_key.pem networks:
-
HiGHmed instance:
Replace 0.6.0 with 0.7.0, update the process exclude config and add new GECCO validation related entries@@ -1,7 +1,7 @@ version: '3.8' services: app: - image: ghcr.io/highmed/bpe:0.6.0 + image: ghcr.io/highmed/bpe:0.7.0 restart: on-failure healthcheck: test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"] @@ -35,6 +35,9 @@ services: - type: bind source: ./psn target: /opt/bpe/psn + - type: bind + source: ./cache + target: /opt/bpe/cache environment: TZ: Europe/Berlin ORG_HIGHMED_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE: /run/secrets/db_liquibase.password @@ -51,12 +54,22 @@ services: highmedorg_computeFeasibility/0.6.0 highmedorg_computeDataSharing/0.6.0 highmedorg_updateAllowList/0.6.0 - wwwnetzwerk-universitaetsmedizinde_dataTranslate/0.4.1 - wwwnetzwerk-universitaetsmedizinde_dataReceive/0.4.1 + wwwnetzwerk-universitaetsmedizinde_dataTranslate/0.6.0 + wwwnetzwerk-universitaetsmedizinde_dataReceive/0.6.0 #TODO modify ORG_HIGHMED_DSF_BPE_PROCESS_EXCLUDED for later process versions #TODO add process specific environment variables, see process documentation + # validation resoruces cache + DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_VALIDATION_PACKAGE_CACHEFOLDER: /opt/bpe/cache/Package + DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_VALIDATION_VALUESET_CACHEFOLDER: /opt/bpe/cache/ValueSet + DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_VALIDATION_STRUCTUREDEFINITION_CACHEFOLDER: /opt/bpe/cache/StructureDefinition + + # terminology server authentication (using bpe client certificate) + DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_VALIDATION_VALUESET_EXPANSION_CLIENT_AUTHENTICATION_CERTIFICATE: /run/secrets/app_client_certificate.pem + DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_VALIDATION_VALUESET_EXPANSION_CLIENT_AUTHENTICATION_CERTIFICATE_PRIVATE_KEY: /run/secrets/app_client_certificate_private_key.pem + DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_VALIDATION_VALUESET_EXPANSION_CLIENT_AUTHENTICATION_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE: /run/secrets/app_client_certificate_private_key.pem.password + #DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_GECCO_SERVER_BASE_URL: http://TODO_GECCO_FRIR_SERVER_FQDN/fhir DE_NETZWERK_UNIVERSITAETSMEDIZIN_CODEX_CRR_PUBLIC_KEY: /run/secrets/crr_public_key.pem networks:
Note: The entry
highmedorg_requestUpdateResources/...
is no longer needed, since we do not recommend to deploy thedsf-bpe-process-update-resources-0.6.0.jar
plugin anymore.
-
-
Upgrade DSF Plugins and Process-Plugins
-
Process plugins in
/opt/bpe/process
:- Replace
codex-process-data-transfer-0.4.1.jar
withcodex-process-data-transfer-0.6.0.jar
from the latest NUM-CODEX processes release
Make sure the process plugins in
/opt/bpe/process
are configured withchmod 440
andchown root:bpe
. - Replace
-
Plugins in '/opt/bpe/plugin' (HiGHmed instance only):
- If you are using the provided PDQ MPI Client, replace
dsf-mpi-client-pdq-0.6.0.jar
,hapi-base-2.3.jar
andhapi-structures-v25-2.3.jar
with the new files fromdsf-mpi-client-pdq-0.7.0.zip
, see DSF release notes - If you are using the provided openEHR Client, replace
dsf-openehr-client-impl-0.6.0.jar
with the new file fromdsf-openehr-client-impl-0.7.0.zip
, see DSF release notes
Make sure the plugins in
/opt/bpe/plugin
are configured withchmod 440
andchown root:bpe
. - If you are using the provided PDQ MPI Client, replace
-
-
Create new cache folders and set owner and permissions
From the/opt/bpe/
folder execute:sudo mkdir cache cache/Package cache/StructureDefinition cache/ValueSet sudo chmod 0770 cache cache/* sudo chown root:bpe cache cache/*
-
Configure the new NUM-CODEX data transfer plugin as needed If the BPE can access the internet only via a corporate forwarding proxy you may need to configure additional environment variables for the process plugin. Please see the release notes and related documentation on how to configure a corporate proxy.
-
Upgrade the DSF BPE containers
From/opt/bpe
executedocker-compose up -d && docker-compose logs -f
-
Verify your upgrade:
- Verify the DSF FHIR server is running in version 0.7.0. The log should contain a message:
INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 0.7.0, [...]
- Verify the DSF FHIR server started without errors
- Verify the DSF FHIR server is accessible via https, for example by browsing to https://your-dsf-endpoint.de/fhir/ (authentication with your client-certificate)
- Verify the DSF BPE server is running in version 0.7.0. The log should contain a message:
INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 0.7.0, [...]
- Verify the DSF BPE server started without errors
- Verify the DSF BPE server removed ActivityDefinition resources for the deleted process plugin from the DSF FHIR server and created new ActivityDefinition for the new process plugin.
- Verify your install with a ping/pong test
For a Task resource compatible with the 0.6.0 release of the ping process, see the Ping/Pong process wiki.
Note: The Task resource for the ping 0.5.0 process does not work with the 0.6.0 release, multiple changes were made in addition to the new version number.
- Verify the DSF FHIR server is running in version 0.7.0. The log should contain a message: