Create UPS for Failed UPS Processing - dcm4che/dcm4chee-arc-light GitHub Wiki
UPS records which failed in their processing can be rescheduled automatically. If the maximum retries to reschedule the
failed UPS processing is reached or if auto rescheduling is not configured at all, then the failed UPS records are no
longer retried to be processed, and their status is set to CANCELED
.
In these two cases, if one wants to actively take appropriate action on such failed UPS records, then one may configure this feature which creates new UPS records referring to the previous failed UPS processing records (which are no longer retried to be processed).
- Refer UPS Template Workitem to create / search UPS Template Workitems.
- Select the
SOP Instance UID (0008,0018)
of the desired UPS Template Workitem received in search UPS template workitem response and use this value in required UPS processor fieldCreate UPS on Cancel
from the pre-configured list of UPS Processing Rule andSave
.
For the sake of testing this feature, a very simple use case for UPS records processing failed is explained below w.r.t the feature Export received DICOM instances. Configure everything except the destination storescp tool.
If no auto rescheduling is configured for this pre-configured DICOM_EXPORT
UPS Processing Rule or if max retries
to reschedule has been reached, then on failure to process the UPS record, a new UPS record shall be created with
SCHEDULED
status.
-
Do not start storescp which acts as a destination.
-
Store studies to archive using storescu tool.
storescu -c <AET>@<archive-host>:<dicom-port> /path-to-study.dcm
-
Verify in
Navigation
page ->UWL
tab for created UPS records. Verify the UIDs of SOP Instances in theInput Information Sequence
of the created UPS records. -
Once the delay and polling intervals are reached, verify the
Procedure Step State
of the UPS record (changed fromSCHEDULED
toCANCELED
) -
Assuming not auto rescheduling has been configured for this processor, verify the new created UPS record which references the previous UPS record in its
Replaced Procedure Step Sequence
- This can also be verified from the server logs as
2020-09-02 16:42:01,560 INFO [org.dcm4chee.arc.ups.impl.UPSServiceEJB] (EE-ManagedExecutorService-default-Thread-143) DCM4CHEE<-STORESCU(2): Create UPS[pk=309167, uid=2.25.231406933419414761065920802553045330855, state=SCHEDULED]
...................
2020-09-02 16:43:08,975 INFO [org.dcm4chee.arc.ups.impl.UPSServiceEJB] (EE-ManagedExecutorService-default-Thread-151) DCM4CHEE: Update UPS[pk=309167, uid=2.25.231406933419414761065920802553045330855, state=IN PROGRESS]
...................
2020-09-02 16:43:09,049 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-151) Initiate connection from /0.0.0.0:0 to localhost:11115
2020-09-02 16:43:09,050 WARN [org.dcm4chee.arc.ups.process.AbstractUPSProcessor] (EE-ManagedExecutorService-default-Thread-151) Failed to process UPS[uid=2.25.231406933419414761065920802553045330855]:
: org.dcm4chee.arc.ups.process.UPSProcessorException: org.dcm4che3.net.service.DicomServiceException: java.net.ConnectException: Connection refused
at deployment.dcm4chee-arc-ear-5.22.5-psql.ear//org.dcm4chee.arc.ups.process.AbstractUPSProcessor.process(AbstractUPSProcessor.java:142)
at deployment.dcm4chee-arc-ear-5.22.5-psql.ear//org.dcm4chee.arc.ups.process.impl.UPSProcessingScheduler$ProcessWorkitems.processMatching(UPSProcessingScheduler.java:207)
at deployment.dcm4chee-arc-ear-5.22.5-psql.ear//org.dcm4chee.arc.ups.process.impl.UPSProcessingScheduler$ProcessWorkitems.run(UPSProcessingScheduler.java:172)
at [email protected]//org.jboss.as.ee.concurrent.ControlPointUtils$ControlledRunnable.run(ControlPointUtils.java:105)
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:830)
at org.glassfish.javax.enterprise.concurrent//org.glassfish.enterprise.concurrent.ManagedThreadFactoryImpl$ManagedThread.run(ManagedThreadFactoryImpl.java:227)
Caused by: org.dcm4che3.net.service.DicomServiceException: java.net.ConnectException: Connection refused
at deployment.dcm4chee-arc-ear-5.22.5-psql.ear//org.dcm4chee.arc.store.scu.impl.CStoreSCUImpl.openAssociation(CStoreSCUImpl.java:103)
at deployment.dcm4chee-arc-ear-5.22.5-psql.ear//org.dcm4chee.arc.store.scu.impl.CStoreSCUImpl.openMultipleAssocations(CStoreSCUImpl.java:190)
at deployment.dcm4chee-arc-ear-5.22.5-psql.ear//org.dcm4chee.arc.store.scu.impl.CStoreSCUImpl.newRetrieveTaskSTORE(CStoreSCUImpl.java:176)
at deployment.dcm4chee-arc-ear-5.22.5-psql.ear//org.dcm4chee.arc.store.scu.impl.CStoreSCUImpl$Proxy$_$$_WeldClientProxy.newRetrieveTaskSTORE(Unknown Source)
at deployment.dcm4chee-arc-ear-5.22.5-psql.ear//org.dcm4chee.arc.ups.storescu.UPSStoreSCU.processA(UPSStoreSCU.java:88)
at deployment.dcm4chee-arc-ear-5.22.5-psql.ear//org.dcm4chee.arc.ups.process.AbstractUPSProcessor.process(AbstractUPSProcessor.java:140)
... 10 more
Caused by: java.net.ConnectException: Connection refused
at java.base/sun.nio.ch.Net.connect0(Native Method)
at java.base/sun.nio.ch.Net.connect(Net.java:493)
at java.base/sun.nio.ch.Net.connect(Net.java:482)
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:339)
at java.base/java.net.Socket.connect(Socket.java:603)
at [email protected]//org.dcm4che3.net.Connection.connect(Connection.java:1047)
at [email protected]//org.dcm4che3.net.ApplicationEntity.connect(ApplicationEntity.java:629)
at [email protected]//org.dcm4che3.net.ApplicationEntity.connect(ApplicationEntity.java:677)
at deployment.dcm4chee-arc-ear-5.22.5-psql.ear//org.dcm4chee.arc.store.scu.impl.CStoreSCUImpl.openAssociation(CStoreSCUImpl.java:90)
... 15 more
...................
2020-09-02 16:43:09,081 INFO [org.dcm4chee.arc.ups.impl.UPSServiceEJB] (EE-ManagedExecutorService-default-Thread-151) DCM4CHEE: Update UPS[pk=309167, uid=2.25.231406933419414761065920802553045330855, state=CANCELED]
...................
2020-09-02 16:43:09,060 INFO [org.dcm4chee.arc.ups.impl.UPSServiceEJB] (EE-ManagedExecutorService-default-Thread-151) DCM4CHEE: Create UPS[pk=309168, uid=2.25.162456303411205275260854693124956179625, state=SCHEDULED]
...................