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

DSF Upgrade From 0.5.5 to 0.6.0

Hauke Hund edited this page May 13, 2022 · 10 revisions

Upgrading from 0.5.5

Upgrading the DSF from 0.5.5 to 0.6.0 involves replacing plugins, modifying the DSF FHIR bundle.xml and the docker-compose.yml files as well as recreating the containers.

If you are Upgrading from 0.5.0, 0.5.1, 0.5.2, 0.5.3 or 0.5.4 please see the Upgrade from 0.5.x to 0.5.5 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.6.0_upgrade
  2. Modify the DSF FHIR conf/bundle.xml file

    • Test NUM-CODEX (non HiGHmed) instance:

      @@ -1,7 +1,7 @@
       <Bundle xmlns="http://hl7.org/fhir">
              <!--
      
      -       DSF 0.5.5 External FHIR Bundle for NUM-CODEX (not HiGHmed) test DICs
      +       DSF 0.6.0 External FHIR Bundle for NUM-CODEX (not HiGHmed) test DICs
      
              Do not modify this file!
      
      @@ -219,6 +219,10 @@
                                                      <system value="http://highmed.org/fhir/CodeSystem/organization-type"/>
                                                      <code value="${org.highmed.dsf.fhir.server.organization.numCodexRole:MeDIC}"/>
                                              </coding>
      +                                       <coding>
      +                                               <system value="http://highmed.org/fhir/CodeSystem/organization-role"/>
      +                                               <code value="${org.highmed.dsf.fhir.server.organization.numCodexRole:MeDIC}"/>
      +                                       </coding>
                                      </code>
                                      <endpoint>
                                              <reference value="urn:uuid:bdf2fb60-1f59-4585-a4ec-08148f8bc552"/>
      @@ -258,6 +262,10 @@
                                                      <system value="http://highmed.org/fhir/CodeSystem/organization-type"/>
                                                      <code value="DTS"/>
                                              </coding>
      +                                       <coding>
      +                                               <system value="http://highmed.org/fhir/CodeSystem/organization-role"/>
      +                                               <code value="DTS"/>
      +                                       </coding>
                                      </code>
                                      <endpoint>
                                              <reference value="urn:uuid:e7075ff1-4a89-428d-846c-fd5cfd8c68bb"/>
    • Test HiGHmed instance:
      No changes needed.

    • Production NUM-CODEX (non HiGHmed) instance:

      @@ -1,7 +1,7 @@
       <Bundle xmlns="http://hl7.org/fhir">
              <!--
      
      -       DSF 0.5.5 External FHIR Bundle for NUM-CODEX (not HiGHmed) production DICs
      +       DSF 0.6.0 External FHIR Bundle for NUM-CODEX (not HiGHmed) production DICs
      
              Do not modify this file!
      
      @@ -212,7 +212,11 @@
                                      <code>
                                              <coding>
                                                      <system value="http://highmed.org/fhir/CodeSystem/organization-type"/>
      -                                               <code value="MeDIC"/>
      +                                               <code value="${org.highmed.dsf.fhir.server.organization.numCodexRole:MeDIC}"/>
      +                                       </coding>
      +                                       <coding>
      +                                               <system value="http://highmed.org/fhir/CodeSystem/organization-role"/>
      +                                               <code value="${org.highmed.dsf.fhir.server.organization.numCodexRole:MeDIC}"/>
                                              </coding>
                                      </code>
                                      <endpoint>
      @@ -253,6 +257,10 @@
                                                      <system value="http://highmed.org/fhir/CodeSystem/organization-type"/>
                                                      <code value="DTS"/>
                                              </coding>
      +                                       <coding>
      +                                               <system value="http://highmed.org/fhir/CodeSystem/organization-role"/>
      +                                               <code value="DTS"/>
      +                                       </coding>
                                      </code>
                                      <endpoint>
                                              <reference value="urn:uuid:b91ebda2-438d-4db0-aa0c-6a6c283543de"/>
    • Production HiGHmed instance:
      No changes needed.

  3. Modify the DSF FHIR docker-compose.yml file, replace 0.5.5 with 0.6.0 and add the new healthcheck

    @@ -1,7 +1,7 @@
     version: '3.8'
     services:
       proxy:
    -    image: ghcr.io/highmed/fhir_proxy:0.5.5
    +    image: ghcr.io/highmed/fhir_proxy:0.6.0
         restart: on-failure
         ports:
           - 127.0.0.1:80:80
    @@ -27,8 +27,13 @@
           - app
    
       app:
    -    image: ghcr.io/highmed/fhir:0.5.5
    +    image: ghcr.io/highmed/fhir:0.6.0
         restart: on-failure
    +    healthcheck:
    +      test: ["CMD", "java", "-cp", "dsf_fhir.jar", "org.highmed.dsf.fhir.StatusClient"]
    +      interval: 10s
    +      timeout: 15s
    +      retries: 5
         secrets:
           - db_liquibase.password
  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.6.0_upgrade
  2. Modify the DSF BPE docker-compose.yml file

    • NUM-CODEX (non HiGHmed) instance:
      Replace 0.5.5 with 0.6.0 and add the new healthcheck

      @@ -1,8 +1,13 @@
       version: '3.8'
       services:
         app:
      -    image: ghcr.io/highmed/bpe:0.5.5
      +    image: ghcr.io/highmed/bpe:0.6.0
           restart: on-failure
      +    healthcheck:
      +      test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"]
      +      interval: 10s
      +      timeout: 15s
      +      retries: 5
           secrets:
             - db_liquibase.password
             - db_user.password

      Note: The ORG_HIGHMED_DSF_BPE_PROCESS_EXCLUDED environment variable for NUM-CODEX should be configured with wwwnetzwerk-universitaetsmedizinde_dataTranslate/0.4.1 and wwwnetzwerk-universitaetsmedizinde_dataReceive/0.4.1.

    • HiGHmed instance:
      Replace 0.5.5 with 0.6.0, add the new healthcheck and update the process exclude config

      @@ -1,8 +1,13 @@
       version: '3.8'
       services:
         app:
      -    image: ghcr.io/highmed/bpe:0.5.5
      +    image: ghcr.io/highmed/bpe:0.6.0
           restart: on-failure
      +    healthcheck:
      +      test: ["CMD", "java", "-cp", "dsf_bpe.jar", "org.highmed.dsf.bpe.StatusClient"]
      +      interval: 10s
      +      timeout: 15s
      +      retries: 5
           secrets:
             - db_liquibase.password
             - db_user.password
      @@ -43,10 +48,9 @@
             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: |
      -        highmedorg_computeFeasibility/0.5.0
      -        highmedorg_computeDataSharing/0.5.0
      -        highmedorg_requestUpdateResources/0.5.0
      -        highmedorg_updateAllowList/0.5.0
      +        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
      ​

      Note: The entry highmedorg_requestUpdateResources/... is no longer needed, since we do not recommend to deploy the dsf-bpe-process-update-resources-0.6.0.jar plugin anymore.

  3. Upgrade DSF Plugins and Process-Plugins

    • NUM-CODEX (non HiGHmed) instance:
      • Process plugins in /opt/bpe/process:

        1. Replace dsf-bpe-process-ping-0.5.0.jar with dsf-bpe-process-ping-0.6.0.jar from the latest HiGHmed processes release

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

    • HiGHmed instance:
      • Process plugins in /opt/bpe/process:

        1. Delete dsf-bpe-process-update-resources-0.5.0.jar
        2. Replace dsf-bpe-process-feasibility-0.5.0.jar with dsf-bpe-process-feasibility-0.6.0.jar from the latest HiGHmed processes release
        3. Replace dsf-bpe-process-local-services-0.5.0.jar with dsf-bpe-process-local-services-0.6.0.jar from the latest HiGHmed processes release
        4. Replace dsf-bpe-process-ping-0.5.0.jar with dsf-bpe-process-ping-0.6.0.jar from the latest HiGHmed processes release
        5. Replace dsf-bpe-process-update-allow-list-0.5.0.jar with dsf-bpe-process-update-allow-list-0.6.0.jar from the latest HiGHmed processes release
        6. Add dsf-bpe-process-data-sharing-0.6.0.jar from the latest release
        7. Add dsf-bpe-process-feasibility-mpc-0.6.0.jar from the latest release

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

      • Plugins in '/opt/bpe/plugin':

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

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

  4. Check or fix folder owner and permissions

    • NUM-CODEX (non HiGHmed) instance:
      No action needed.

    • HiGHmed instance:
      The BPE needs to be able to write to the folder /opt/bpe/psn.

      chmod 0770 /opt/bpe/psn
      chown root:bpe /opt/bpe/psn
      
  5. Upgrade the DSF BPE containers
    From /opt/bpe execute

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

    • Verify the DSF FHIR server is running in version 0.6.0. The log should contain a message:
      INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 0.6.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/
    • Verify the DSF BPE server is running in version 0.6.0. The log should contain a message:
      INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 0.6.0, [...]
    • Verify the DSF BPE server started without errors
    • Verify the DSF BPE server removed ActivityDefinition resources for the deleted process plugins from the DSF FHIR server and created new ActivityDefinition for the new process plugin(s).
    • 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 new 0.6.0 release, multiple changes were made in addition to the new version number.
Clone this wiki locally