Synchronization between two PACS

2,592 views
Skip to first unread message

Piotr Orzechowski

unread,
Mar 24, 2013, 12:23:35 PM3/24/13
to dcm...@googlegroups.com
Hi, I would like to synchronize studies between two or more DCM4CHEE pacs. I have five pacs (client) and one primary server pacs. When the study goes to the cilent pacs, it is forwarded to the primary server. When I change anything on primary serwer, or add any files to the study, it should be updated on exact client pacs. I think it is possible, but I have problem with jmx configuration. Need help:)

fleetwoodfc

unread,
Mar 24, 2013, 5:37:21 PM3/24/13
to dcm...@googlegroups.com
The jmx-console ContentEditService will do what you need.

pazzoid71

unread,
Mar 25, 2013, 7:20:56 PM3/25/13
to dcm...@googlegroups.com
hi guys.

I'm tyring to setup a backup PACS (DCM4CHEE) of a primary PACS (DCM4CHEE).
I've understood that i must use "service=Forward" in the jmxconsole with a very easy configuration (only specify target PACS).
Reading this thread, i fall in confusion: 
i must use ContentEditService???

My goal is to setup a failover (backup) pacs so that if the first (primary) fall, all the patients/study/... images are in the backup pacs

Can somebody lead on the right direction?

Thank you all for the help!!

fleetwoodfc

unread,
Mar 26, 2013, 6:52:13 AM3/26/13
to dcm...@googlegroups.com
Sorry about your confusing fall.
To keep a backup PACS synchronized with a primary then yes you must first copy from the primary to the backup and yes you use the forward service for this. You must also synchronize any updates made on the primary and for this you use the ContentEditService e.g. if you correct a patient name.

From the primary PACS viewpoint it receives a study from a Calling AE while it will be the Called AE. An example forwarding rule would be:
[calling=SCU1]BACKUPAE!8-16
Meaning: send a copy of all studies received from SCU1 to BACKUPAE but do not forward the copies during 'office hours' (8am-4:00pm).  

Piotr Orzechowski

unread,
Mar 26, 2013, 3:26:11 PM3/26/13
to dcm...@googlegroups.com
Ok, but I have five client servers. Is this possible to use ContentEditService to update the study on exact client server? When the study comes from only one client server, I can use Forward mode, but primary PACS should send notification about updated studies only to this client pacs, where the original study is, not to all client pacs.

marcin...@kambu.pl

unread,
Apr 17, 2013, 5:31:58 AM4/17/13
to dcm...@googlegroups.com
I send studies from TEST to DCM4CHEE whitch should forward this study to PACS_B. So I configured dcm4chee.archive.Forward service in PACS_A as follows:
ForwardingRules: [calling=TEST]PACS_B
ForwardOnInstanceLevelFromAETitles: NONE
EnablePatientUpdated, EnableSeriesUpdated, IgnoreNotLocalRetrievable is set to true
ForwardModifiedToAETitles: PACS_B

I get this exception after sending new study to PACS_A:
2013-04-17 11:07:42,364 INFO  DCM4CHEE->DCM4CHEE (Thread-67689) [org.dcm4cheri.net.FsmImpl] sending A-RELEASE-RQ
2013-04-17 11:07:42,368 INFO  DCM4CHEE->DCM4CHEE (ActiveAssoc-6961-1) [org.dcm4cheri.net.FsmImpl] received A-RELEASE-RQ
2013-04-17 11:07:42,368 INFO  DCM4CHEE->DCM4CHEE (ActiveAssoc-6961-1) [org.dcm4cheri.net.FsmImpl] sending A-RELEASE-RP
2013-04-17 11:07:42,368 INFO  -> (TCPServer-1-125) [org.dcm4cheri.server.ServerImpl] finished - Socket[addr=/127.0.0.1,port=54657,localport=11112]
2013-04-17 11:07:42,368 INFO  DCM4CHEE->DCM4CHEE (ActiveAssoc-6962) [org.dcm4cheri.net.FsmImpl] received A-RELEASE-RP
2013-04-17 11:07:42,368 INFO  DCM4CHEE->DCM4CHEE (ActiveAssoc-6962) [org.dcm4cheri.net.FsmImpl] closing connection - Socket[addr=localhost/127.0.0.1,port=11112,localport=54657]
2013-04-17 11:07:42,376 WARN  -> (Thread-67689) [org.dcm4chex.archive.dcm.movescu.MoveScuService] Failed to process org.dcm4chex.archive.dcm.movescu.MoveOrder@20130417110542273125@13ace92[1 Instances, dest=PACS_B, qrscp=DCM4CHEE, priority=0, failures=3]. Scheduling retry.
org.dcm4che.net.DcmServiceException
        at org.dcm4chex.archive.dcm.movescu.MoveScuService.invokeDimse(MoveScuService.java:267)
        at org.dcm4chex.archive.dcm.movescu.MoveScuService.process(MoveScuService.java:221)
        at org.dcm4chex.archive.dcm.movescu.MoveScuService.onMessage(MoveScuService.java:188)
        at org.jboss.jms.client.container.ClientConsumer.callOnMessage(ClientConsumer.java:229)
        at org.jboss.jms.client.container.ClientConsumer$ListenerRunner.run(ClientConsumer.java:1043)
        at org.jboss.messaging.util.OrderedExecutorFactory$ChildExecutor.run(OrderedExecutorFactory.java:120)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
2013-04-17 11:07:42,376 INFO  -> (Thread-67689) [org.dcm4chex.archive.dcm.movescu.MoveScuService] Schedule order: org.dcm4chex.archive.dcm.movescu.MoveOrder@20130417110542273125@13ace92[1 Instances, dest=PACS_B, qrscp=DCM4CHEE, priority=0, failures=3]


What is wrong?

Marcin

Cristiano Palazzo

unread,
Apr 17, 2013, 5:48:18 AM4/17/13
to dcm...@googlegroups.com

:) i haved this problem 2 weeks ago. Remove the underscore from hostname and aetitle. Jboss or java cannot resolve. Is out of standard Rfc on hostname naming convention. Let me know.

--
You received this message because you are subscribed to the Google Groups "dcm4che" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dcm4che+u...@googlegroups.com.
To post to this group, send email to dcm...@googlegroups.com.
Visit this group at http://groups.google.com/group/dcm4che?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

marcin...@kambu.pl

unread,
Apr 17, 2013, 7:47:58 AM4/17/13
to dcm...@googlegroups.com
I did as you suggest but still the same problem.
I changed names so now it looks like: TEST sends study to DCM4CHEE copies it to PACSKLIENT.

Complete log:

2013-04-17 13:17:44,188 INFO  -> (Thread-68925) [org.dcm4chex.archive.dcm.movescu.MoveScuService] Start processing org.dcm4chex.archive.dcm.movescu.MoveOrder@20130417131444017135@e596bd[1 Instances, dest=PACSKLIENT, qrscp=DCM4CHEE, priority=0, failures=3]
2013-04-17 13:17:44,188 INFO  -> (TCPServer-1-128) [org.dcm4cheri.server.ServerImpl] handle - Socket[addr=/127.0.0.1,port=57554,localport=11112]
2013-04-17 13:17:44,188 INFO  -> (TCPServer-1-128) [org.dcm4cheri.net.FsmImpl] Socket[addr=/127.0.0.1,port=57554,localport=11112]
2013-04-17 13:17:44,188 INFO  -> (Thread-68925) [org.dcm4cheri.net.FsmImpl] Socket[addr=localhost/127.0.0.1,port=11112,localport=57554]
2013-04-17 13:17:44,192 INFO  DCM4CHEE->DCM4CHEE (Thread-68925) [org.dcm4cheri.net.FsmImpl] sending AAssociateRQ
        appCtxName:     1.2.840.10008.3.1.1.1/DICOM Application Context Name
        implClass:      1.2.40.0.13.1.1.1
        implVersion:    dcm4che-1.4.31
        calledAET:      DCM4CHEE
        callingAET:     DCM4CHEE
        maxPDULen:      16352
        asyncOpsWindow:
        pc-1:   as=1.2.840.10008.5.1.4.1.2.1.2/Patient Root Query/Retrieve Information Model - MOVE
                ts=1.2.840.10008.1.2/Implicit VR Little Endian
2013-04-17 13:17:44,192 INFO  DCM4CHEE->DCM4CHEE (TCPServer-1-128) [org.dcm4cheri.net.FsmImpl] received AAssociateRQ
        appCtxName:     1.2.840.10008.3.1.1.1/DICOM Application Context Name
        implClass:      1.2.40.0.13.1.1.1
        implVersion:    dcm4che-1.4.31
        calledAET:      DCM4CHEE
        callingAET:     DCM4CHEE
        maxPDULen:      16352
        asyncOpsWindow:
        pc-1:   as=1.2.840.10008.5.1.4.1.2.1.2/Patient Root Query/Retrieve Information Model - MOVE
                ts=1.2.840.10008.1.2/Implicit VR Little Endian
2013-04-17 13:17:44,192 INFO  DCM4CHEE->DCM4CHEE (TCPServer-1-128) [org.dcm4cheri.net.FsmImpl] sending AAssociateAC
        appCtxName:     1.2.840.10008.3.1.1.1/DICOM Application Context Name
        implClass:      1.2.40.0.13.1.1.1
        implVersion:    dcm4che-1.4.31
        calledAET:      DCM4CHEE
        callingAET:     DCM4CHEE
        maxPDULen:      16352
        asyncOpsWindow:
        pc-1:   0 - acceptance
                ts=1.2.840.10008.1.2/Implicit VR Little Endian
2013-04-17 13:17:44,192 INFO  DCM4CHEE->DCM4CHEE (Thread-68925) [org.dcm4cheri.net.FsmImpl] received AAssociateAC
        appCtxName:     1.2.840.10008.3.1.1.1/DICOM Application Context Name
        implClass:      1.2.40.0.13.1.1.1
        implVersion:    dcm4che-1.4.31
        calledAET:      DCM4CHEE
        callingAET:     DCM4CHEE
        maxPDULen:      16352
        asyncOpsWindow:
        pc-1:   0 - acceptance
                ts=1.2.840.10008.1.2/Implicit VR Little Endian
2013-04-17 13:17:44,192 INFO  DCM4CHEE->DCM4CHEE (Thread-68925) [org.dcm4cheri.net.FsmImpl] sending [pc-1] 1:C_MOVE_RQ with Dataset
        class:  1.2.840.10008.5.1.4.1.2.1.2/Patient Root Query/Retrieve Information Model - MOVE
        move dest:      PACSKLIENT
2013-04-17 13:17:44,192 INFO  DCM4CHEE->DCM4CHEE (TCPServer-1-128) [org.dcm4cheri.net.FsmImpl] received [pc-1] 1:C_MOVE_RQ with Dataset
        class:  1.2.840.10008.5.1.4.1.2.1.2/Patient Root Query/Retrieve Information Model - MOVE
        move dest:      PACSKLIENT
2013-04-17 13:17:44,204 INFO  DCM4CHEE->DCM4CHEE (Timer-2) [org.dcm4cheri.net.FsmImpl] sending [pc-1] 1:C_MOVE_RSP
        class:  1.2.840.10008.5.1.4.1.2.1.2/Patient Root Query/Retrieve Information Model - MOVE
        status: ff00
2013-04-17 13:17:44,204 INFO  DCM4CHEE->DCM4CHEE (ActiveAssoc-7194) [org.dcm4cheri.net.FsmImpl] received [pc-1] 1:C_MOVE_RSP
        class:  1.2.840.10008.5.1.4.1.2.1.2/Patient Root Query/Retrieve Information Model - MOVE
        status: ff00
2013-04-17 13:17:44,204 INFO  DCM4CHEE->DCM4CHEE (Thread-69062) [org.dcm4cheri.net.FsmImpl] Socket[addr=/192.168.51.156,port=11112,localport=56317]
2013-04-17 13:17:44,204 INFO  DCM4CHEE->PACSKLIENT (Thread-69062) [org.dcm4cheri.net.FsmImpl] sending AAssociateRQ
        appCtxName:     1.2.840.10008.3.1.1.1/DICOM Application Context Name
        implClass:      1.2.40.0.13.1.1.1
        implVersion:    dcm4che-1.4.31
        calledAET:      PACSKLIENT
        callingAET:     DCM4CHEE
        maxPDULen:      16352
        asyncOpsWindow: maxOpsInvoked=0, maxOpsPerformed=1
        pc-1:   as=1.2.840.10008.5.1.4.1.1.1/Computed Radiography Image Storage
                ts=1.2.840.10008.1.2/Implicit VR Little Endian
        pc-3:   as=1.2.840.10008.5.1.4.1.1.1/Computed Radiography Image Storage
                ts=1.2.840.10008.1.2.1/Explicit VR Little Endian
2013-04-17 13:17:44,208 INFO  DCM4CHEE->PACSKLIENT (Thread-69062) [org.dcm4cheri.net.FsmImpl] received A-ASSOCIATE-RJ
        result=1 - rejected-permanent
        source=1 - service-user
        reason=7 - called-AE-title-not-recognized
2013-04-17 13:17:44,260 INFO  DCM4CHEE->PACSKLIENT (Thread-69062) [org.dcm4cheri.net.FsmImpl] closing connection - Socket[addr=/192.168.51.156,port=11112,localport=56317]
2013-04-17 13:17:44,260 ERROR -> (Thread-69062) [org.dcm4chex.archive.dcm.qrscp.QueryRetrieveScpService] Association not accepted by PACSKLIENT:
A-ASSOCIATE-RJ
        result=1 - rejected-permanent
        source=1 - service-user
        reason=7 - called-AE-title-not-recognized
java.io.IOException: Association not accepted by PACSKLIENT:
A-ASSOCIATE-RJ
        result=1 - rejected-permanent
        source=1 - service-user
        reason=7 - called-AE-title-not-recognized
        at org.dcm4chex.archive.dcm.qrscp.MoveTask.openAssociation(MoveTask.java:228)
        at org.dcm4chex.archive.dcm.qrscp.MoveTask.run(MoveTask.java:354)
        at java.lang.Thread.run(Thread.java:662)
2013-04-17 13:17:44,260 INFO  DCM4CHEE->DCM4CHEE (Thread-69062) [org.dcm4cheri.net.FsmImpl] sending [pc-1] 1:C_MOVE_RSP with Dataset
        class:  1.2.840.10008.5.1.4.1.2.1.2/Patient Root Query/Retrieve Information Model - MOVE
        status: a702
2013-04-17 13:17:44,260 INFO  DCM4CHEE->DCM4CHEE (ActiveAssoc-7194) [org.dcm4cheri.net.FsmImpl] received [pc-1] 1:C_MOVE_RSP with Dataset
        class:  1.2.840.10008.5.1.4.1.2.1.2/Patient Root Query/Retrieve Information Model - MOVE
        status: a702
2013-04-17 13:17:44,260 INFO  DCM4CHEE->DCM4CHEE (Thread-68925) [org.dcm4cheri.net.FsmImpl] sending A-RELEASE-RQ
2013-04-17 13:17:44,260 INFO  DCM4CHEE->DCM4CHEE (ActiveAssoc-7193-1) [org.dcm4cheri.net.FsmImpl] received A-RELEASE-RQ
2013-04-17 13:17:44,260 INFO  DCM4CHEE->DCM4CHEE (ActiveAssoc-7193-1) [org.dcm4cheri.net.FsmImpl] sending A-RELEASE-RP
2013-04-17 13:17:44,260 INFO  -> (TCPServer-1-128) [org.dcm4cheri.server.ServerImpl] finished - Socket[addr=/127.0.0.1,port=57554,localport=11112]
2013-04-17 13:17:44,264 INFO  DCM4CHEE->DCM4CHEE (ActiveAssoc-7194) [org.dcm4cheri.net.FsmImpl] received A-RELEASE-RP
2013-04-17 13:17:44,264 INFO  DCM4CHEE->DCM4CHEE (ActiveAssoc-7194) [org.dcm4cheri.net.FsmImpl] closing connection - Socket[addr=localhost/127.0.0.1,port=11112,localport=57554]
2013-04-17 13:17:44,272 WARN  -> (Thread-68925) [org.dcm4chex.archive.dcm.movescu.MoveScuService] Failed to process org.dcm4chex.archive.dcm.movescu.MoveOrder@20130417131444017135@e596bd[1 Instances, dest=PACSKLIENT, qrscp=DCM4CHEE, priority=0, failures=4]. Scheduling retry.
org.dcm4che.net.DcmServiceException
        at org.dcm4chex.archive.dcm.movescu.MoveScuService.invokeDimse(MoveScuService.java:267)
        at org.dcm4chex.archive.dcm.movescu.MoveScuService.process(MoveScuService.java:221)
        at org.dcm4chex.archive.dcm.movescu.MoveScuService.onMessage(MoveScuService.java:188)
        at org.jboss.jms.client.container.ClientConsumer.callOnMessage(ClientConsumer.java:229)
        at org.jboss.jms.client.container.ClientConsumer$ListenerRunner.run(ClientConsumer.java:1043)
        at org.jboss.messaging.util.OrderedExecutorFactory$ChildExecutor.run(OrderedExecutorFactory.java:120)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
2013-04-17 13:17:44,272 INFO  -> (Thread-68925) [org.dcm4chex.archive.dcm.movescu.MoveScuService] Schedule order: org.dcm4chex.archive.dcm.movescu.MoveOrder@20130417131444017135@e596bd[1 Instances, dest=PACSKLIENT, qrscp=DCM4CHEE, priority=0, failures=4]
2013-04-17 13:17:44,312 INFO  DCM4CHEE->DCM4CHEE (ActiveAssoc-7193-1) [org.dcm4cheri.net.FsmImpl] closing connection - Socket[addr=/127.0.0.1,port=57554,localport=11112]

Cristiano Palazzo

unread,
Apr 17, 2013, 8:03:20 AM4/17/13
to dcm...@googlegroups.com
If you see in the log, now the message is different.
there is "called-AE-title-not-recognized"

you must insert the new AETITLE in the Application Entities.

Go to "http://localhost:8080/dcm4chee-web3/" --> Application Entities and insert the AETITLE of the backup server (PACSKLIENT)

Do the same on the backup server: insert the primary server AETITLE in the "Application Entities" list.

I've done this exact procedure and it worked.

pazzoid71






2013/4/17 <marcin...@kambu.pl>

marcin...@kambu.pl

unread,
Apr 17, 2013, 9:31:05 AM4/17/13
to dcm...@googlegroups.com
I did that before :/ But when I try echo to from DCM4CHEE to PACSKLIENT I get error:
DICOM Echo to dicom://PACSK...@xxx.xxx.xxx.156:11112:
Echo failed! Reason: A-ASSOCIATE-RJ[result=1, source=1, reason=7]: permanent called-AE-title-not-recognized

I think that I have to set up something more but I don't have a clue where and what.
I don't understand another thing. On pacs DCM4CHEE when I try to echo myself, it is done with success. But on pacs PACSKLIENT it fails with the same message as above.

David Davies

unread,
Apr 17, 2013, 10:06:00 AM4/17/13
to dcm...@googlegroups.com
Is PACSKLIENT a dcm4chee instance? If so you must use jmx-console->AE->updateAETitle to change the AE name?

You received this message because you are subscribed to a topic in the Google Groups "dcm4che" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/dcm4che/SjBFMQwkHA0/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to dcm4che+u...@googlegroups.com.

marcin...@kambu.pl

unread,
Apr 18, 2013, 5:01:35 AM4/18/13
to
Yes both are dcm4chee instances and I used updateAETitle to change name.

My exception during Echo PACSKLIENT from other pacs or the same is:
DICOM Echo to dicom://PACSKLIENT@localhost:11112:
Echo failed! Reason: Failed to establish Association aet:PACSKLIENT

On Wednesday, April 17, 2013 4:06:00 PM UTC+2, fleetwoodfc wrote:
Is PACSKLIENT a dcm4chee instance? If so you must use jmx-console->AE->updateAETitle to change the AE name?

On 4/17/13 9:31 AM, marcin...@kambu.pl wrote:
I did that before :/ But when I try echo to from DCM4CHEE to PACSKLIENT I get error:

fleetwoodfc

unread,
Apr 18, 2013, 6:33:57 AM4/18/13
to dcm...@googlegroups.com
If you cannot echo 'yourself' then check the server log for startup errors


On Thursday, April 18, 2013 4:58:50 AM UTC-4, marcin...@kambu.pl wrote:
Yes both are dcm4chee instances and I used updateAETitle to change name.

My exception during Echo PACSKLIENT from other pacs or the same is:
DICOM Echo to dicom://PACSKLIENT@localhost:11112:
Echo failed! Reason: Failed to establish Association aet:PACSKLIENT

On Wednesday, April 17, 2013 4:06:00 PM UTC+2, fleetwoodfc wrote:
Is PACSKLIENT a dcm4chee instance? If so you must use jmx-console->AE->updateAETitle to change the AE name?

On 4/17/13 9:31 AM, marcin...@kambu.pl wrote:
I did that before :/ But when I try echo to from DCM4CHEE to PACSKLIENT I get error:

marcin...@kambu.pl

unread,
Apr 19, 2013, 5:00:23 AM4/19/13
to
I had few exceptions during startup. But now It's ok and forwarding works very well :-)
Thx for your help again :-)

Another question. When I send study to PACSA it is forwarded to PACSB. Now I want to add new image to that study on PACSB - how to configure dcm4chee to send this image to PACSA?


Marcin.
Reply all
Reply to author
Forward
Message has been deleted
0 new messages