I'm very new to DICOM protocol, and I'm having a questions related to "Transfer Syntax" that needs to be chosen, before sending the images.
I have a list of images that I want to send to a remote server. Images in that list can be in one of the following format: CR, CT, DOC, DX, ES, KO, MG, MR, NM, OT, PR, PT, RF, SC, US, XA. So I was wondering if there is some list where I can see which transfer syntax, corresponds to which DICOM format? I can take my DICOM images and determine their format from above, but I'm not sure what transfer syntax to use for each of them.
This is an example, when I'm hard-coding for one image:
DicomDataSet ct = new DicomDataSet("CT.dcm");
DicomDataSetCollection instancesToSend = new DicomDataSetCollection();
instancesToSend.Add(ct);
DicomAssociation connection = new DicomAssociation();
// "Send CT in Implicit VR Little endian format"
connection.RequestedContexts.Add(ct.SOPClass, "1.2.840.10008.1.2");
connection.Open("remote host", 104, "client", "server");
connection.SendInstances(instancesToSend);
connection.Close();
As I said, I have list of images. I can take each of them in a loop, but how can I know which transfer syntax to use for each DICOM image?
As long as you only want to create and send images, a reasonable decision is to support Implicit Little Endian only. It is the default Transfer Syntax in DICOM - each system that claims to be DICOM conformant must support it.
It is going to become much more complicated when you want to apply lossy compression or need to receive objects.