Updating dcm4chee-arc-light via docker-compose

836 views
Skip to first unread message

Michael Andersen

unread,
Feb 19, 2021, 4:46:18 PM2/19/21
to dcm4che
Hi,

I've had some issues updating to the latest version of dcm4chee-arc-light (image: dcm4che/dcm4chee-arc-psql:5.23.1-secure).

The version I have currently deployed is 22.5-secure with Keycloak, logstash etc. deployed with docker-compose.

If I try just changing the image versions in docker-compose then I find the deployment version of dcm4chee-arc doesn't update and the config in dcm4chee-arc-oidc-logstash.xml is still referring to 22.5 and this causes the container to crash.

If I remove my deployment and configuration folders and then start my containers then I can successfully deploy 23.1. However, I'm getting two errors:
1. When I try to retrieve images via a previously configured web REST service I get this error: org.postgresql.util.PSQLException: ERROR: column series0_.receiving_aet does not exist (I can provide more stack trace if necessary)
2. I am unable to change Encode as JSON Number(s) fields to True on the Archive Device. I get an error saying the field doesn't exist after I try to save the change in the UI console.

So it still seems like my update is incomplete? Any help on these issues would be greatly appreciated. Overall, I'm wondering what is the correct way to update an existing docker-compose deployment.


Gunter Zeilinger

unread,
Mar 1, 2021, 4:50:36 PM3/1/21
to dcm4che
If you get "org.postgresql.util.PSQLException: ERROR: column series0_.receiving_aet does not exist", you did not successfully update the DB schema from 5.22 to 5.23 by

$ docker exec postgres-container-name update-schema 5.23

or

$ docker-compose -p dcm4chee-arc exec db update-schema 5.23

Michael Andersen

unread,
Mar 2, 2021, 3:33:38 PM3/2/21
to dcm4che
Thank you! That documentation was easy to follow and I am no longer getting that error.

I am also able to successfully set Encode as JSON Number for my archive device. However, I am still having errors pulling images into OHIF Viewer, errors I did not have on version 5.22.5. Should changing this value apply to data already stored on the device? I know this is considered more of an OHIF Viewer problem than dcm4che but I'm wondering if I need to encode as number for all four values or just a subset? If anyone has any experience connecting OHIF Viewer and Dcm4chee-arc-light 23.1 help would be greatly appreciated!

Gunter Zeilinger

unread,
Mar 3, 2021, 7:17:18 AM3/3/21
to dcm4che

Michael Andersen

unread,
Mar 3, 2021, 12:40:15 PM3/3/21
to dcm4che
Thanks, that worked! And for anyone else connecting dcm4che and OHIF Viewer, setting just DS and IS to Encode as JSON Number seems to be the necessary configuration. 

Hassan Awodi

unread,
Apr 2, 2021, 11:37:17 AM4/2/21
to dcm4che
Is there a docker-compose example with OHIF Viewer? I followed one from ohif github integration examples and I couldn't get the viewer to show.

vet...@gmail.com

unread,
Apr 2, 2021, 12:56:02 PM4/2/21
to dcm4che

Hi Gunter, I've tried what you posted.
I had several errors.

these are my running containers

dcm4che/dcm4chee-arc-psql:5.23.0-secure   
dcm4che/keycloak:11.0.3   
dcm4che/postgres-dcm4chee:13.1-23 
dcm4che/slapd-dcm4chee:2.4.57-23.2  

But for exemple in the config/device I don't have Stowrs, so my upgrade should not be functionnal.

I've also done what you mentionned before :
docker-compose -p dcm4chee-arc exec db update-schema 5.23

but I have the errors, can you help me ?

-- part 1: can be applied on archive running archive 5.22
alter table person_name
    add alphabetic_name varchar(255),
    add ideographic_name varchar(255),
    add phonetic_name varchar(255);
psql:/sql/update-5.23-psql.sql:5: ERROR:  column "alphabetic_name" of relation "person_name" already exists
update person_name
set alphabetic_name = concat(family_name, '^', given_name, '^', middle_name, '^', name_prefix, '^', name_suffix, '^'),
    ideographic_name = concat(i_family_name, '^', i_given_name, '^', i_middle_name, '^', i_name_prefix, '^', i_name_suffix, '^'),
    phonetic_name = concat(p_family_name, '^', p_given_name, '^', p_middle_name, '^', p_name_prefix, '^', p_name_suffix, '^');
psql:/sql/update-5.23-psql.sql:10: ERROR:  column "family_name" does not exist
LINE 2: set alphabetic_name = concat(family_name, '^', given_name, '...
                                     ^
create index UK_gs2yshbwu0gkd33yxyv13keoh on person_name (alphabetic_name);
psql:/sql/update-5.23-psql.sql:12: ERROR:  relation "uk_gs2yshbwu0gkd33yxyv13keoh" already exists
create index UK_ala4l4egord8i2tjvjidoqd1s on person_name (ideographic_name);
psql:/sql/update-5.23-psql.sql:13: ERROR:  relation "uk_ala4l4egord8i2tjvjidoqd1s" already exists
create index UK_9nr8ddkp8enufvbn72esyw3n1 on person_name (phonetic_name);
psql:/sql/update-5.23-psql.sql:14: ERROR:  relation "uk_9nr8ddkp8enufvbn72esyw3n1" already exists
create index alphabetic_name_upper_idx on person_name (upper(alphabetic_name));
psql:/sql/update-5.23-psql.sql:16: ERROR:  relation "alphabetic_name_upper_idx" already exists
alter table issuer drop constraint UK_gknfxd1vh283cmbg8ymia9ms8;
psql:/sql/update-5.23-psql.sql:18: ERROR:  constraint "uk_gknfxd1vh283cmbg8ymia9ms8" of relation "issuer" does not exist
create index UK_gknfxd1vh283cmbg8ymia9ms8 on issuer (entity_id);
psql:/sql/update-5.23-psql.sql:19: ERROR:  relation "uk_gknfxd1vh283cmbg8ymia9ms8" already exists
alter table series
    add receiving_aet varchar(255),
    add receiving_pres_addr varchar(255),
    add sending_aet varchar(255),
    add sending_pres_addr varchar(255);
psql:/sql/update-5.23-psql.sql:25: ERROR:  column "receiving_aet" of relation "series" already exists
update series
set sending_aet = src_aet;
psql:/sql/update-5.23-psql.sql:28: ERROR:  column "src_aet" does not exist
LINE 2: set sending_aet = src_aet;
                          ^
create index UK_b9e2bptvail8xnmb62h30h4d2 on series (sending_aet);
psql:/sql/update-5.23-psql.sql:30: ERROR:  relation "uk_b9e2bptvail8xnmb62h30h4d2" already exists
create index UK_lnck3a2qjo1vc430n1sy51vbr on series (receiving_aet);
psql:/sql/update-5.23-psql.sql:31: ERROR:  relation "uk_lnck3a2qjo1vc430n1sy51vbr" already exists
create index UK_gxun7s005k8qf7qwhjhkkkkng on series (sending_pres_addr);
psql:/sql/update-5.23-psql.sql:32: ERROR:  relation "uk_gxun7s005k8qf7qwhjhkkkkng" already exists
create index UK_e15a6qnq8jcq931agc2v48nvt on series (receiving_pres_addr);
psql:/sql/update-5.23-psql.sql:33: ERROR:  relation "uk_e15a6qnq8jcq931agc2v48nvt" already exists
-- part 2: shall be applied on stopped archive before starting 5.23
update person_name
set alphabetic_name = concat(family_name, '^', given_name, '^', middle_name, '^', name_prefix, '^', name_suffix, '^'),
    ideographic_name = concat(i_family_name, '^', i_given_name, '^', i_middle_name, '^', i_name_prefix, '^', i_name_suffix, '^'),
    phonetic_name = concat(p_family_name, '^', p_given_name, '^', p_middle_name, '^', p_name_prefix, '^', p_name_suffix, '^')
where alphabetic_name is null;
psql:/sql/update-5.23-psql.sql:40: ERROR:  column "family_name" does not exist
LINE 2: set alphabetic_name = concat(family_name, '^', given_name, '...
                                     ^
update series
set sending_aet = src_aet
where sending_aet is null;
psql:/sql/update-5.23-psql.sql:44: ERROR:  column "src_aet" does not exist
LINE 2: set sending_aet = src_aet
                          ^
-- part 3: can be applied on already running archive 5.23
alter table person_name
    alter alphabetic_name set not null,
    alter ideographic_name set not null,
    alter phonetic_name set not null;
ALTER TABLE
alter table person_name
    drop family_name,
    drop given_name,
    drop middle_name,
    drop name_prefix,
    drop name_suffix,
    drop i_family_name,
    drop i_given_name,
    drop i_middle_name,
    drop i_name_prefix,
    drop i_name_suffix,
    drop p_family_name,
    drop p_given_name,
    drop p_middle_name,
    drop p_name_prefix,
    drop p_name_suffix;
psql:/sql/update-5.23-psql.sql:67: ERROR:  column "family_name" of relation "person_name" does not exist
alter table series
    drop src_aet;
psql:/sql/update-5.23-psql.sql:70: ERROR:  column "src_aet" of relation "series" does not exist

Gunter Zeilinger

unread,
Apr 2, 2021, 1:01:48 PM4/2/21
to dcm4che
Are you sure, that you did not yet running 5.23.1 (or at least 5.23.0), so you don't need (and also can't)


> docker-compose -p dcm4chee-arc exec db update-schema 5.23

?

vet...@gmail.com

unread,
Apr 2, 2021, 2:17:29 PM4/2/21
to dcm4che
Yes I do run 5.23, I've update the docker image.
But the thing is that on the web UI  I don't see the Stow device. Vrinda told me that in the last version there is a Stowrs device already in.
And I don't have this device in my archive... so something should be wrong

I wanted to clone the Stow rs to be able to test dcm with kheops

Gunter Zeilinger

unread,
Apr 2, 2021, 3:41:22 PM4/2/21
to dcm4che
Did you execute

> docker-compose -p dcm4chee-arc exec ldap update-schema
> docker-compose -p dcm4chee-arc exec ldap update-data 5.23.1
> docker-compose -p dcm4chee-arc exec ldap update-data 5.23.2

and reload/restart the archive ?

vet...@gmail.com

unread,
Apr 2, 2021, 4:42:10 PM4/2/21
to dcm4che

no I did only the first line. 
now it's fine.
Thank you very much Gunter
Reply all
Reply to author
Forward
0 new messages