DICOM study -> HL7 Receiver

617 views
Skip to first unread message

Juri Antonov

unread,
Jun 8, 2022, 7:59:03 AM6/8/22
to dcm4che
Hi, guys!

Dcm4che newbie here. Using dcm4che-arc-light 5.26 unsecured docker setup.

I'm trying to send my dcm studies to HL7 server as ORM messages, following wiki instructions: https://github.com/dcm4che/dcm4chee-arc-light/wiki/Received-Studies
I have configured everything like in the manual using admin UI, but there are no HL7Send tasks getting scheduled.
HL7 messages forwarding using the same HL7 receiver is working just fine.

There are no errors in the logs, studies are saved in the archive but no HL7 messages are generated. Seems like I'm missing some sort of a trigger configuration. 

Can anyone help me out? 


Cheers,
Juri

Vrinda Nayak

unread,
Jun 9, 2022, 3:25:55 AM6/9/22
to dcm4che
Can you share your configurations?

Juri Antonov

unread,
Jun 13, 2022, 6:43:37 AM6/13/22
to dcm4che
Receiver part:
Device is just name hl7rcv and status Installed.
Hostname is resolvable inside arc container (I use docker compose for deployment and there is same network).
1.jpg

2.jpg
Hl7 receiver just cloned as in wiki:
3.jpg

dcm4chee-arc device is configured as follows:
4.jpg
HL7 Procedure Status Update Task Polling Interval value is also 30PTS.
Everything else is default.


Juri Antonov

unread,
Jun 13, 2022, 8:12:40 AM6/13/22
to dcm4che
I just updated to version 5.26.1 and everything worked. I guess it was related to some issue fixed in latest release: https://github.com/dcm4che/dcm4chee-arc-light/releases/tag/5.26.1

So topic is solved, thanks for the attention.

F Yoshimoto

unread,
Aug 16, 2022, 6:38:46 PM8/16/22
to dcm4che
Using version 5.27.0 and cannot get the system to send the HL7 message to my receiver.  I keep getting a "Unknown HL7 Application"

Vrinda Nayak

unread,
Aug 17, 2022, 5:19:11 AM8/17/22
to dcm4che
What exactly are you trying to use, and what are your configs?

F Yoshimoto

unread,
Aug 17, 2022, 12:38:51 PM8/17/22
to dcm4che
Followed the config using this link: https://github.com/dcm4che/dcm4chee-arc-light/wiki/Received-Studies

Here is a snippet of the server.log:
2022-08-16 20:08:48,094 INFO  [org.dcm4chee.arc.qmgt.impl.TaskScheduler] (EE-ManagedScheduledExecutorService-default-Thread-4) start TaskScheduler.execute()
2022-08-16 20:08:48,118 INFO  [org.dcm4chee.arc.qmgt.impl.TaskScheduler] (EE-ManagedExecutorService-default-Thread-35) Start processing Task{taskID=1, deviceName='dcm4chee-arc', queueName='HL7Send', type=HL7, status=IN PROCESS, scheduledTime=2022-08-16 20:07:48.114, numberOfFailures=3, exporterID=OMG^O19, errorMessage=Unknown HL7 Application: HL7APP|, localAET=HL7SEND|, remoteAET=HL7APP|}
2022-08-16 20:08:48,123 INFO  [org.dcm4chee.arc.qmgt.impl.TaskManagerEJB] (EE-ManagedExecutorService-default-Thread-35) Failed processing of Task{taskID=1, deviceName='dcm4chee-arc', queueName='HL7Send', type=HL7, status=IN PROCESS, scheduledTime=2022-08-16 20:07:48.114, numberOfFailures=4, exporterID=OMG^O19, errorMessage=Unknown HL7 Application: HL7APP|, localAET=HL7SEND|, remoteAET=HL7APP|} - retry:
: org.dcm4che3.conf.api.ConfigurationNotFoundException: Unknown HL7 Application: HL7APP|
    at org.dcm4che....@5.28.0//org.dcm4che3.conf.api.hl7.HL7ApplicationCache.findHL7Application(HL7ApplicationCache.java:67)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.jboss...@3.1.9.Final//org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
    at org.jboss...@3.1.9.Final//org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106)
    at deployment.dcm4chee-arc-ear-5.28.0-psql-secure.ear//org.dcm4che3.conf.api.hl7.IHL7ApplicationCache$2017092341$Proxy$_$$_WeldClientProxy.findHL7Application(Unknown Source)
    at deployment.dcm4chee-arc-ear-5.28.0-psql-secure.ear.dcm4chee-arc-hl7-5.28.0.jar//org.dcm4chee.arc.hl7.impl.HL7SenderTaskProcessor.process(HL7SenderTaskProcessor.java:85)
    at deployment.dcm4chee-arc-ear-5.28.0-psql-secure.ear.dcm4chee-arc-hl7-5.28.0.jar//org.dcm4chee.arc.hl7.impl.HL7SenderTaskProcessor$Proxy$_$$_WeldClientProxy.process(Unknown Source)
    at deployment.dcm4chee-arc-ear-5.28.0-psql-secure.ear.dcm4chee-arc-qmgt-5.28.0.jar//org.dcm4chee.arc.qmgt.impl.TaskScheduler.processTask(TaskScheduler.java:208)
    at deployment.dcm4chee-arc-ear-5.28.0-psql-secure.ear.dcm4chee-arc-qmgt-5.28.0.jar//org.dcm4chee.arc.qmgt.impl.TaskScheduler.processTasksSequential(TaskScheduler.java:143)
    at deployment.dcm4chee-arc-ear-5.28.0-psql-secure.ear.dcm4chee-arc-qmgt-5.28.0.jar//org.dcm4chee.arc.qmgt.impl.TaskScheduler.process(TaskScheduler.java:123)
    at deployment.dcm4chee-arc-ear-5.28.0-psql-secure.ear.dcm4chee-arc-qmgt-5.28.0.jar//org.dcm4chee.arc.qmgt.impl.TaskScheduler.lambda$process$0(TaskScheduler.java:112)
    at org.jbo...@26.1.1.Final//org.jboss.as.ee.concurrent.ControlPointUtils$ControlledRunnable.run(ControlPointUtils.java:125)
    at org.wildfly.secu...@1.19.0.Final//org.wildfly.security.auth.server.SecurityIdentity.runAsConsumer(SecurityIdentity.java:376)
    at org.wildfly.secu...@1.19.0.Final//org.wildfly.security.auth.server.Scoped.runAsConsumer(Scoped.java:112)
    at org.wildfly.secu...@1.19.0.Final//org.wildfly.security.auth.server.Scoped.runAs(Scoped.java:60)
    at org.jbo...@26.1.1.Final//org.jboss.as.ee.concurrent.SecurityIdentityUtils.lambda$doIdentityWrap$1(SecurityIdentityUtils.java:63)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.glassfish.javax.enterprise.concurrent//org.glassfish.enterprise.concurrent.internal.ManagedFutureTask.run(ManagedFutureTask.java:117)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
    at org.glassfish.javax.enterprise.concurrent//org.glassfish.enterprise.concurrent.ManagedThreadFactoryImpl$ManagedThread.run(ManagedThreadFactoryImpl.java:227)

Vrinda Nayak

unread,
Aug 19, 2022, 5:26:15 AM8/19/22
to dcm4che
Not reproducible. However, always ensure to configure both the application and facility name for HL7 Applications - See IHE Profile - MSH Segment

Archive server log

11:18:43,872 INFO  [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-2) Accept connection Socket[addr=/127.0.0.1,port=54959,localport=11112]
11:18:43,900 INFO  [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-STORESCU(1) >> A-ASSOCIATE-RQ
11:18:43,903 INFO  [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-STORESCU(1) << A-ASSOCIATE-AC
11:18:43,932 INFO  [org.dcm4che3.net.Dimse] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-STORESCU(1) >> 1:C-STORE-RQ[pcid=5, prior=0
 cuid=1.2.840.10008.5.1.4.1.1.1 - Computed Radiography Image Storage
 iuid=1.2.392.200036.9125.0.19950720093509 - ?
 tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian]
11:18:44,085 INFO  [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-STORESCU(1): Create Study[pk=39, uid=1.2.392.200036.9125.0.198811291108.7, id=*]
11:18:44,088 INFO  [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-STORESCU(1): Create Series[pk=44, uid=1.2.392.200036.9125.0.198811291108.7, no=null, mod=CR]
11:18:44,090 INFO  [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-STORESCU(1): Create Instance[pk=85, uid=1.2.392.200036.9125.0.19950720093509, class=1.2.840.10008.5.1.4.1.1.1, no=7
]
11:18:44,092 INFO  [org.dcm4chee.arc.store.impl.StoreServiceEJB] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-STORESCU(1): Create Location[pk=85, systemID=fs1, path=2022/08/19/A34C229F/A34C229F/9445F8DC, tsuid=1.2.840.10008.1
.2, size=6714476, status=OK, objectType=DICOM_FILE]
11:18:44,135 INFO  [org.dcm4chee.arc.store.impl.StoreServiceImpl] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-STORESCU(1): Updated DB in 123 ms
11:18:44,154 INFO  [org.dcm4chee.arc.ups.impl.UPSServiceEJB] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-STORESCU(1): Create UPS[pk=108, uid=2.25.77634170011492536157177599404908552635, state=SCHEDULED]
11:18:44,175 INFO  [org.dcm4chee.arc.hl7.psu.HL7PSUEJB] (EE-ManagedExecutorService-default-Thread-14) org.dcm4chee.arc.store.impl.StoreContextImpl@70acfc2e: Created HL7PSUTask[pk=4, deviceName=dcm4chee-arc, studyInstanceUID=1.2.392.2000
36.9125.0.198811291108.7, seriesInstanceUID=1.2.392.200036.9125.0.198811291108.7, accessionNumber=FUJI95701, scheduledTime=Fri Aug 19 11:19:44 CEST 2022]
11:18:44,181 INFO  [org.dcm4che3.net.Dimse] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-STORESCU(1) << 1:C-STORE-RSP[pcid=5, status=0H
 cuid=1.2.840.10008.5.1.4.1.1.1 - Computed Radiography Image Storage
 iuid=1.2.392.200036.9125.0.19950720093509 - ?
 tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian]
11:18:44,183 INFO  [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-STORESCU(1) >> A-RELEASE-RQ
11:18:44,183 INFO  [org.dcm4che3.net.Association] (EE-ManagedExecutorService-default-Thread-14) DCM4CHEE<-STORESCU(1) << A-RELEASE-RP
11:18:44,234 INFO  [org.dcm4che3.net.Association] (EE-ManagedScheduledExecutorService-default-Thread-3) DCM4CHEE<-STORESCU(1): close Socket[addr=view-localhost/127.0.0.1,port=54959,localport=11112]
.................
.................
11:20:19,316 INFO  [org.dcm4chee.arc.qmgt.impl.TaskScheduler] (EE-ManagedExecutorService-default-Thread-11) Start processing Task{taskID=7, deviceName='dcm4chee-arc', queueName='HL7Send', type=HL7, status=IN PROCESS, scheduledTime=2022-
08-19 11:20:15.36, numberOfFailures=0, exporterID=OMG^O19, localAET=HL7SND|, remoteAET=HL7RCV|}
11:20:19,332 INFO  [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-11) Initiate connection from /0.0.0.0:0 to localhost:2576
11:20:19,333 INFO  [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-11) Established connection Socket[addr=localhost/127.0.0.1,port=2576,localport=34363]
11:20:19,339 INFO  [org.dcm4che3.hl7.MLLPConnection] (EE-ManagedExecutorService-default-Thread-11) Socket[addr=localhost/127.0.0.1,port=2576,localport=34363] << MSH|^~\&|HL7SND||HL7RCV||20220819112015.290||OMG^O19^OMG_O19|330893515|P|2.
5||||||8859/1|||
11:20:19,352 INFO  [org.dcm4che3.hl7.MLLPConnection] (EE-ManagedExecutorService-default-Thread-11) Socket[addr=localhost/127.0.0.1,port=2576,localport=34363] >> MSH|^~\&|HL7RCV||HL7SND||20220819112019.350||ACK^O19^ACK|2099355171|P|2.5||
||||8859/1|||
11:20:19,363 INFO  [org.dcm4chee.arc.qmgt.impl.TaskManagerEJB] (EE-ManagedExecutorService-default-Thread-11) Finished processing of Task{taskID=7, deviceName='dcm4chee-arc', queueName='HL7Send', type=HL7, status=WARNING, scheduledTime=2
022-08-19 11:20:15.36, numberOfFailures=0, exporterID=OMG^O19, localAET=HL7SND|, remoteAET=HL7RCV|}


HL7 Receiver log

hl7rcv -b 2576 --ignore
11:18:19.484 INFO  - Start TCP Listener on 0.0.0.0/0.0.0.0:2576
11:20:19.333 INFO  - Accept connection Socket[addr=/127.0.0.1,port=34363,localport=2576]
11:20:19.341 INFO  - Socket[addr=/127.0.0.1,port=34363,localport=2576] >> MSH|^~\&|HL7SND||HL7RCV||20220819112015.290||OMG^O19^OMG_O19|330893515|P|2.5||||||8859/1|||
11:20:19.341 DEBUG - Socket[addr=/127.0.0.1,port=34363,localport=2576] >> MSH|^~\&|HL7SND||HL7RCV||20220819112015.290||OMG^O19^OMG_O19|330893515|P|2.5||||||8859/1|||
ORC|SC|A34C229F|A34C229F||CM
TQ1|||||||20220819111844.173||
OBR||A34C229F|A34C229F|||||||||||||||A34C229F|A34C229F|||||||||||||||||||||||||
OBX|1|ST|113014^DICOM Study^DCM||1.2.392.200036.9125.0.198811291108.7||||||O

:1:20:19.348 INFO  - Socket[addr=/127.0.0.1,port=34363,localport=2576]: failed to process MSH|^~\&|HL7SND||HL7RCV||20220819112015.290||OMG^O19^OMG_O19|330893515|P|2.5||||||8859/1|||

org.dcm4che3.hl7.HL7Exception: Missing Sending Facility
       at org.dcm4che3.net.hl7.HL7Application.onMessage(HL7Application.java:254)
       at org.dcm4che3.net.hl7.HL7DeviceExtension.onMessage(HL7DeviceExtension.java:148)
       at org.dcm4che3.net.hl7.HL7ProtocolHandler$HL7Receiver.run(HL7ProtocolHandler.java:92)
       at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
       at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
       at java.base/java.lang.Thread.run(Thread.java:830)
11:20:19.351 INFO  - Socket[addr=/127.0.0.1,port=34363,localport=2576] << MSH|^~\&|HL7RCV||HL7SND||20220819112019.350||ACK^O19^ACK|2099355171|P|2.5||||||8859/1|||
11:20:19.351 DEBUG - Socket[addr=/127.0.0.1,port=34363,localport=2576] << MSH|^~\&|HL7RCV||HL7SND||20220819112019.350||ACK^O19^ACK|2099355171|P|2.5||||||8859/1|||
MSA|AE|330893515|Missing Sending Facility
ERR||MSH^1^4^1^1|101^Required field missing^HL70357|E||||Missing Sending Facility

11:20:19.357 INFO  - Close connection Socket[addr=/127.0.0.1,port=34363,localport=2576]



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