Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

DSF Upgrade From 0.7.0 to 0.8.0

Hauke Hund edited this page Oct 18, 2022 · 5 revisions

Version 0.8.0 has a known bug (#384) and will be replaced with Version 0.9.0 in the coming days.

Upgrading from 0.7.0

Upgrading the DSF from 0.7.0 to 0.8.0 invokes replacing a config file, modifying the docker-compose.yml files and recreating the containers. Members of the NUM-CODEX/RDP project also need to upgrade a process plugin.

If you are upgrading from 0.6.0 please see the Upgrade from 0.6.0 to 0.7.0 guide first.

Modify DSF FHIR Server Setup

  1. 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.8.0_upgrade
  2. Modify the DSF FHIR docker-compose.yml file, replace 0.7.0 with 0.8.0

    @@ -1,7 +1,7 @@
     version: '3.8'
     services:
       proxy:
    -    image: ghcr.io/highmed/fhir_proxy:0.7.0
    +    image: ghcr.io/highmed/fhir_proxy:0.8.0
         restart: on-failure
         ports:
           - 127.0.0.1:80:80
    @@ -27,7 +27,7 @@ services:
           - app
     
       app:
    -    image: ghcr.io/highmed/fhir:0.7.0
    +    image: ghcr.io/highmed/fhir:0.8.0
         restart: on-failure
         healthcheck:
           test: ["CMD", "java", "-cp", "dsf_fhir.jar", "org.highmed.dsf.fhir.StatusClient"]
  3. Download prepared DSF FHIR server config files and extract/replace the external FHIR bundle

    The command will update the external FHIR bundle at /opt/fhir/conf/bundle.xml

    The output of the tar command should be

    fhir/conf/bundle.xml
    
  4. Upgrade the DSF FHIR containers
    From /opt/fhir execute

    docker-compose up -d && docker-compose logs -f
    

Modify DSF BPE Server Setup

  1. 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.8.0_upgrade
  2. Modify the DSF BPE docker-compose.yml file

    • NUM-CODEX (non HiGHmed) instance:
      Change the bpe container version from 0.7.0 to 0.8.0, update the process exclude config and remove a bind mount

      @@ -1,7 +1,7 @@
       version: '3.8'
       services:
         app:
      -    image: ghcr.io/highmed/bpe:0.7.0
      +    image: ghcr.io/highmed/bpe:0.8.0
           restart: on-failure
           healthcheck:
             test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"]
      @@ -29,9 +29,6 @@ services:
             - type: bind
               source: ./log
               target: /opt/bpe/log
      -      - type: bind
      -        source: ./last_event
      -        target: /opt/bpe/last_event
             - type: bind
               source: ./cache
               target: /opt/bpe/cache
      @@ -48,8 +45,8 @@ 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.6.0
      -        wwwnetzwerk-universitaetsmedizinde_dataReceive/0.6.0
      +        wwwnetzwerk-universitaetsmedizinde_dataTranslate/0.7.0
      +        wwwnetzwerk-universitaetsmedizinde_dataReceive/0.7.0
      
             #TODO modify ORG_HIGHMED_DSF_BPE_PROCESS_EXCLUDED for later process versions
             #TODO add process specific environment variables, see process documentation
    • HiGHmed instance:
      Change the bpe container version from 0.7.0 to 0.8.0, update the process exclude config, and remove a bind mount

      @@ -1,7 +1,7 @@
       version: '3.8'
       services:
         app:
      -    image: ghcr.io/highmed/bpe:0.7.0
      +    image: ghcr.io/highmed/bpe:0.8.0
           restart: on-failure
           healthcheck:
             test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"]
      @@ -29,9 +29,6 @@ services:
             - type: bind
               source: ./log
               target: /opt/bpe/log
      -      - type: bind
      -        source: ./last_event
      -        target: /opt/bpe/last_event
             - type: bind
               source: ./psn
               target: /opt/bpe/psn
      @@ -54,8 +51,8 @@ services:
               highmedorg_computeFeasibility/0.6.0
               highmedorg_computeDataSharing/0.6.0
               highmedorg_updateAllowList/0.6.0
      -        wwwnetzwerk-universitaetsmedizinde_dataTranslate/0.6.0
      -        wwwnetzwerk-universitaetsmedizinde_dataReceive/0.6.0
      +        wwwnetzwerk-universitaetsmedizinde_dataTranslate/0.7.0
      +        wwwnetzwerk-universitaetsmedizinde_dataReceive/0.7.0
      
             #TODO modify ORG_HIGHMED_DSF_BPE_PROCESS_EXCLUDED for later process versions
             #TODO add process specific environment variables, see process documentation
  3. Upgrade DSF Plugins and Process-Plugins

    • Process plugins in /opt/bpe/process:

      1. Replace codex-process-data-transfer-0.6.0.jar with codex-process-data-transfer-0.7.0.jar from the latest NUM-CODEX processes release

      Make sure the process plugins in /opt/bpe/process are configured with chmod 440 and chown root:bpe.

    • Plugins in '/opt/bpe/plugin' (HiGHmed instance only):

      1. If you are using the provided PDQ MPI Client, replace dsf-mpi-client-pdq-0.7.0.jar, hapi-base-2.3.jar and hapi-structures-v25-2.3.jar with the new files from dsf-mpi-client-pdq-0.8.0.zip, see DSF release notes
      2. If you are using the provided openEHR Client, replace dsf-openehr-client-impl-0.7.0.jar with the new file from dsf-openehr-client-impl-0.8.0.zip, see DSF release notes

      Make sure the plugins in /opt/bpe/plugin are configured with chmod 440 and chown root:bpe.

  4. Upgrade the DSF BPE containers
    From /opt/bpe execute

    docker-compose up -d && docker-compose logs -f
    
  5. Verify your upgrade:

    • Verify the DSF FHIR server is running in version 0.8.0. The log should contain a message:
      INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 0.8.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.8.0. The log should contain a message:
      INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 0.8.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.
Clone this wiki locally