I am trying to limit the SOP classes accepted the STORE SCP. Is there a list I can provide of the supported SOP classes? I see the supported transfer syntax I can configure but not the SOP classes. Thanks.
no
You might however achieve this with a lua script to filter instances based on their SOPClassUID
tag.
Hello,
I’d like to emphasize the need for SOP Class negociation within Orthanc…
As far as I understand filtering based on a LUA script, this solution would not achieve same objective since filtering would occur after the instances are transmitted while SOP Class negociation would prevent sending non-supported/useless instances for the application using Orthanc.
A real-life example is the adoption of Enhanced CT and Enhanced MR IODs.
Some CT/MR scanners are able to automatically adapt the DICOM format of their images based on what the target system supports:
- if both Standard and Enhanced are supported (i.e. negociated), then Enhanced is chosen to ensure richer IOD and more efficient data transfer (thanks to multiframe image vs single-frame in Standard CT/MR)
- if only standard is supported, then obviously Standard format is used.
With such CT/MR scanners, if it’s not possible to restrict the supported SOP Class to Standard CT/MR in Orthanc, then a specific configuration is required on the CT/MR scanner to force the SOP class used which makes system integration more complex and time-consuming (dependance on the vendor tech services) and potentially unstable (typically, configuration lost upon scanner software update/upgrade).
Regards,
Hervé.
Hi Hervé,
Indeed, I get your point !
I have added it in our TODO and will look into it next time I work on the DICOM protocol part of Orthanc and let you know of any progress.
Best regards,
Alain.
Great, thanks.
As far as I was told, DCMTK storescp already supports this capability, so hopefully this will help.
I have actually implemented this feature while working on C-Get SCU. Here is the documentation of new entries in the configuration file:
// The list of accepted Storage SOP classes.
// If empty or not defined, this list defaults
// to all storage classes defined in DCMTK in case of
// C-STORE SCP and to a reduced list of 120 common storage
// classes in case of C-GET SCU.
// Each entry can contain wildcards ("?" or "*") to add
// subsets of SOP classes that are defined in DCMTK.
// If you want to add a a SOP class that is not defined in
// DCMTK, you must add it explicitely.
// (new in Orthanc 1.12.6)
// "AcceptedSopClasses" : [
// "1.2.840.10008.5.1.4.1.1.2",
// "1.2.840.10008.5.1.4.1.1.4"
// ]
// The list of rejected Storage SOP classes.
// This configuration is only meaningful if
// "AcceptedSopClasses" is using regular expressions
// or if it is not defined.
// Each entry can contain wildcards ("?" or "*").
// (new in Orthanc 1.12.6)
// "RejectedSopClasses" : [
// "1.2.840.10008.5.1.4.1.1.2",
// "1.2.840.10008.5.1.4.1.1.4"
// ]
So, in your case, you should probably just add a few entries in RejectedSopClasses
to prevent the CT/MR to use the Enhanced format.
That would be great if you could give it a try and validate the correct behavior before we release the feature.
Docker images are being built right now so a pre-release will soon be available in orthancteam/orthanc-pre-release:get-scu-unstable
Best regards,
Alain.