Add DICOM DIMSE-C services interface.#112
Conversation
|
@x9517536607 thank you for this great effort and contribution , I love it! |
|
@Zaid-Safadi I referenced project from here and integrate with IObjectStoreService, IObjectArchieveQueryService and IObjectRetrieveService , you can check it in here. I think it is almost done, but I don't create user interface to manage CMoveIPTable line 91 using in c-move command. The main program logic is also in SCP.cs.
You can test it with Radiantviewer, Use Dicomweb upload image to DICOMcloud and use Radiantviewer to query/retrieve by DIMSE-C service interface with "QRSCP" as AE title. Or you can send c-store command to store DICOM images to DICOMcloud and use web interface to view that images. |
sjswerdloff
left a comment
There was a problem hiding this comment.
Really nice PR.
Unit tests would make a good addition (although that implies the need for the SCU functionality).
I would like to see this make it in to the default branch, or at least in to a branch in the parent repo (I've had to go clone from the fork to start investigating and experimenting, with the goal of constructing the proxy that was the original issue/request #111 )
| @@ -0,0 +1,8 @@ | |||
| CREATE TABLE [dbo].[CMoveIPTable] | |||
There was a problem hiding this comment.
This is an Application Entity descriptor table (although it doesn't list the supported Services).
It doesn't have to be specifically for C-MOVE
| [Id] BIGINT IDENTITY (1, 1) NOT NULL, | ||
| [IP] NVARCHAR(50) NOT NULL, | ||
| [Port] INT NOT NULL, | ||
| [AEtitle] NVARCHAR(50) NOT NULL UNIQUE, |
There was a problem hiding this comment.
The limit on the size of an AE Title is 16 characters (VR of AE),
see https://dicom.nema.org/medical/dicom/current/output/chtml/part05/sect_6.2.html
| using System.Text; | ||
| using System.Threading.Tasks; | ||
|
|
||
| namespace DICOMcloud.Wado.PacsInterface.PacsService |
There was a problem hiding this comment.
While a PACS is probably the most likely target, the protocol implemented here is the DIMSE services.
It's the original protocol, of which WADO is an alternative.
So this is a DIMSEInterface and is offering DIMSEServer (apparently ready to offer C-STORE, C-FIND, and C-MOVE).
The namespace is OK as is, but you've accomplished a lot more than "just" PACS interface. It can be used for other purposes (this was in response to an Issue/Request for a proxy... this addresses a good chunk of what would be needed for such a proxy).
This is my implementation for issue #111
I referred QueryRetrieve SCP and integrate DICOMcloud services as its backend.
You only easily configure the app:PacsStorageConnection and app:PacsDataArchieve same as App.config in DICOMcloud.Wado.WebApi.It will using same data.