DICOM Router/Gateway Workflow
From DicomObjectsWiki
Very often questions are asked about DICOM Router/Gateway implementations. So we think it's worth while putting up a wiki article here.
Contents |
Why Routing?
- To allow multiple SCUs(Clients) perform composite and normalized DICOM operations on remote PACS Server.
- To allow SCUs retrieve Images via C-GET, which is NOT supported by many PACS nowadays.
The General Work Flow
The general routing work flow is simple. It forwards every incoming requests, including all DICOM composite as well as normalized operations, and return meaningful status and results (if there is any) to the client, as shown in the following picture.
The DICOM Composite Operations
C-FIND
Very simple. Router forwards whatever it received from client and sends back whatever it received from the Server.
C-GET
There are choices of how to handle C-GET. Router can forward the incoming C-GET to server and sends back retrieved images. If Server doesn't support C-GET then router can fire C-MOVE off to server and sends back retrieved images.
Using C-GET to Handle Incoming C-GET Requests
Again, using C-GET to handle C-GET is simple forwarding.
Using C-MOVE to Handle Incoming C-GET Requests
Using C-MOVE to handle C-GET is more difficult than using C-GET, due to the complex nature of C-MOVE. It requires close co-ordination between Router and Server, IE. Move Destination AET Lookup on server and router must be listening on the correct port, which is associated its AET.
C-MOVE
Handling C-MOVE requires Router to do MOVE Destination AET lookup. Client must be listening on the correct port number associated with its AET, which is stored in Router's AET lookup table.
Using C-GET to Handle Incoming C-MOVE Requests
Using C-MOVE to Handle Incoming C-MOVE Requests
This is the most complex one, as it requires both Server and Router to do MOVE Destination AET lookup. Client must be listening on the correct port number associated with its AET, which is stored in Router's AET lookup table. Router must be listening on the correct port number associated with its AET, which is stored in Server's AET lookup table.
